From c7db06e33af8f5c89a32049e22664e96eac28979 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:11:30 -0400 Subject: [PATCH 01/42] consensus-squid boilerplate --- .vscode/astral.code-workspace | 16 +- indexers/consensus-squid/.dockerignore | 4 + indexers/consensus-squid/.env | 8 + indexers/consensus-squid/.gitignore | 11 + indexers/consensus-squid/.npmrc | 1 + indexers/consensus-squid/.squidignore | 7 + indexers/consensus-squid/LICENSE | 21 + indexers/consensus-squid/README.md | 194 + indexers/consensus-squid/commands.json | 97 + indexers/consensus-squid/docker-compose.yml | 15 + indexers/consensus-squid/gemini3h.jsonl | 5 + .../hasura/hasura_metadata.json | 0 indexers/consensus-squid/package-lock.json | 5167 +++++++++++++++++ indexers/consensus-squid/package.json | 38 + indexers/consensus-squid/schema.graphql | 295 + .../consensus-squid/scripts/docker-run.sh | 5 + .../consensus-squid/scripts/sub-client.js | 42 + indexers/consensus-squid/squid.yaml | 33 + indexers/consensus-squid/src/main.ts | 15 + indexers/consensus-squid/tsconfig.json | 19 + 20 files changed, 5981 insertions(+), 12 deletions(-) create mode 100644 indexers/consensus-squid/.dockerignore create mode 100644 indexers/consensus-squid/.env create mode 100644 indexers/consensus-squid/.gitignore create mode 100644 indexers/consensus-squid/.npmrc create mode 100644 indexers/consensus-squid/.squidignore create mode 100644 indexers/consensus-squid/LICENSE create mode 100644 indexers/consensus-squid/README.md create mode 100644 indexers/consensus-squid/commands.json create mode 100644 indexers/consensus-squid/docker-compose.yml create mode 100644 indexers/consensus-squid/gemini3h.jsonl create mode 100644 indexers/consensus-squid/hasura/hasura_metadata.json create mode 100644 indexers/consensus-squid/package-lock.json create mode 100644 indexers/consensus-squid/package.json create mode 100644 indexers/consensus-squid/schema.graphql create mode 100644 indexers/consensus-squid/scripts/docker-run.sh create mode 100644 indexers/consensus-squid/scripts/sub-client.js create mode 100644 indexers/consensus-squid/squid.yaml create mode 100644 indexers/consensus-squid/src/main.ts create mode 100644 indexers/consensus-squid/tsconfig.json diff --git a/.vscode/astral.code-workspace b/.vscode/astral.code-workspace index 913531e3f..bdab97095 100644 --- a/.vscode/astral.code-workspace +++ b/.vscode/astral.code-workspace @@ -17,24 +17,16 @@ "path": "../indexers" }, { - "name": "indexer - General Squid", - "path": "../indexers/general-squid" - }, - { - "name": "indexer - Account Squid", - "path": "../indexers/account-squid" - }, - { - "name": "indexer - Staking Squid", - "path": "../indexers/staking-squid" + "name": "indexer - Consensus Squid", + "path": "../indexers/consensus-squid" }, { "name": "indexer - Leaderboard Squid", "path": "../indexers/leaderboard-squid" }, { - "name": "indexer - Rewards Squid", - "path": "../indexers/rewards-squid" + "name": "indexer - Staking Squid", + "path": "../indexers/staking-squid" } ], "settings": { diff --git a/indexers/consensus-squid/.dockerignore b/indexers/consensus-squid/.dockerignore new file mode 100644 index 000000000..27c983bc0 --- /dev/null +++ b/indexers/consensus-squid/.dockerignore @@ -0,0 +1,4 @@ +/.git +/node_modules +/lib +/*Versions.jsonl diff --git a/indexers/consensus-squid/.env b/indexers/consensus-squid/.env new file mode 100644 index 000000000..d034b96bd --- /dev/null +++ b/indexers/consensus-squid/.env @@ -0,0 +1,8 @@ +DB_NAME=squid +DB_NAME=consensus-squid +DB_PORT=23798 +GQL_PORT=4350 + +RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws +CONSENSUS_GATEWAY="https://v2.archive.subsquid.io/network/gemini-3h" +RPC_CONSENSUS_HTTP="wss://rpc-squids.gemini-3h.subspace.network/ws" diff --git a/indexers/consensus-squid/.gitignore b/indexers/consensus-squid/.gitignore new file mode 100644 index 000000000..263e67075 --- /dev/null +++ b/indexers/consensus-squid/.gitignore @@ -0,0 +1,11 @@ +/node_modules +/lib +/builds + +/**Versions.json +/**Versions.jsonl + +# IDE files +/.idea + +/src/model/generated/ \ No newline at end of file diff --git a/indexers/consensus-squid/.npmrc b/indexers/consensus-squid/.npmrc new file mode 100644 index 000000000..4fd021952 --- /dev/null +++ b/indexers/consensus-squid/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/indexers/consensus-squid/.squidignore b/indexers/consensus-squid/.squidignore new file mode 100644 index 000000000..726f78c5f --- /dev/null +++ b/indexers/consensus-squid/.squidignore @@ -0,0 +1,7 @@ +node_modules +builds +lib +Dockerfile +.git +.github +.idea diff --git a/indexers/consensus-squid/LICENSE b/indexers/consensus-squid/LICENSE new file mode 100644 index 000000000..47cce4977 --- /dev/null +++ b/indexers/consensus-squid/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Autonomys Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/indexers/consensus-squid/README.md b/indexers/consensus-squid/README.md new file mode 100644 index 000000000..002ddf328 --- /dev/null +++ b/indexers/consensus-squid/README.md @@ -0,0 +1,194 @@ +# Consensus squid + +Our Consensus Indexer using [Squid](https://subsquid.io). +It is in use at [Astral - Consensus](https://explorer.autonomys.xyz/gemini-3h/consensus) Autonomys Explorer, Consensus section. + +## Summary + +- [Quickstart](#quickly-running-the-squid) +- [Development flow](#dev-flow) + - [Database Schema](#1-define-database-schema) + - [Entity classes](#2-generate-typeorm-classes) + - [DB migrations](#3-generate-database-migration) + - [Typegen for Events, Extrinsics and Storage Calls](#4-generate-typescript-definitions-for-substrate-events-calls-and-storage) +- [Deploy the Squid](#deploy-the-squid) +- [Conventions](#project-conventions) +- [Type Bundles](#types-bundle) + +## Prerequisites + +- node 16.x +- docker +- npm -- note that `yarn` package manager is not supported + +## Quickly running the squid + +Commands below use [sqd](https://docs.subsquid.io/squid-cli/). +Please [install](https://docs.subsquid.io/squid-cli/installation/) it before proceeding. + +```bash +# 1. Install dependencies +npm ci + +# 2. Start target Postgres database and detach +sqd up + +# 3. Build the project +sqd build + +# 4. Start both the squid processor and the GraphQL server +sqd run . +``` + +A GraphiQL playground will be available at [localhost:4350/graphql](http://localhost:4350/graphql). + +## Dev flow + +### 1. Define database schema + +Start development by defining the schema of the target database via `schema.graphql`. +Schema definition consists of regular graphql type declarations annotated with custom directives. +Full description of `schema.graphql` dialect is available [here](https://docs.subsquid.io/store/postgres/schema-file/). + +### 2. Generate TypeORM classes + +Mapping developers use [TypeORM](https://typeorm.io) entities +to interact with the target database during data processing. All necessary entity classes are +[generated](https://docs.subsquid.io/store/postgres/schema-file/intro/) by the squid framework from `schema.graphql`. This is done by running `npx squid-typeorm-codegen` +or (equivalently) `sqd codegen` command. + +### 3. Generate database migration + +All database changes are applied through migration files located at `db/migrations`. +`squid-typeorm-migration(1)` tool provides several commands to drive the process. +It is all [TypeORM](https://typeorm.io/#/migrations) under the hood. + +```bash +# Connect to database, analyze its state and generate migration to match the target schema. +# The target schema is derived from entity classes generated earlier. +# Don't forget to compile your entity classes beforehand! +npx squid-typeorm-migration generate + +# Create template file for custom database changes +npx squid-typeorm-migration create + +# Apply database migrations from `db/migrations` +npx squid-typeorm-migration apply + +# Revert the last performed migration +npx squid-typeorm-migration revert +``` + +Available `sqd` shortcuts: + +```bash +# Build the project, remove any old migrations, then run `npx squid-typeorm-migration generate` +sqd migration:generate + +# Run npx squid-typeorm-migration apply +sqd migration:apply +``` + +### 4. Generate TypeScript definitions for substrate events, calls and storage + +This is an optional part, but it is very advisable. + +Event, call and runtime storage data come to mapping handlers as raw untyped json. +While it is possible to work with raw untyped json data, +it's extremely error-prone and the json structure may change over time due to runtime upgrades. + +Squid framework provides a tool for generating type-safe wrappers around events, calls and runtime storage items for +each historical change in the spec version. See the [Substrate typegen](https://docs.subsquid.io/substrate-indexing/squid-substrate-typegen/) documentation page. + +## Deploy the Squid + +After a local run, obtain a deployment key by signing into [Subsquid Cloud](https://app.subsquid.io) and run + +```sh +npx sqd auth -k YOUR_DEPLOYMENT_KEY +``` + +Next, inspect the Squid CLI help to deploy and manage your squid: + +```sh +npx sqd squid --help +``` + +For more information, consult the [Deployment Guide](https://docs.subsquid.io/deploy-squid/). + +## Project conventions + +Squid tools assume a certain project layout. + +- All compiled js files must reside in `lib` and all TypeScript sources in `src`. + The layout of `lib` must reflect `src`. +- All TypeORM classes must be exported by `src/model/index.ts` (`lib/model` module). +- Database schema must be defined in `schema.graphql`. +- Database migrations must reside in `db/migrations` and must be plain js files. +- `squid-*(1)` executables consult `.env` file for a number of environment variables. + +See the [full desription](https://docs.subsquid.io/basics/squid-structure/) in the documentation. + +## Types bundle + +Substrate chains that have blocks with metadata versions below 14 don't provide enough +information to decode their data. For those chains, external [type](https://polkadot.js.org/docs/api/start/types.extend) [definitions](https://polkadot.js.org/docs/api/start/types.extend) are required. + +Subsquid tools include definitions for many chains, however sometimes external +definitions are still required. + +You can pass them as a special json file (types bundle) of the following structure: + +```json5 +{ + types: { + AccountId: "[u8; 32]", + }, + typesAlias: { + assets: { + Balance: "u64", + }, + }, + versions: [ + { + minmax: [0, 1000], // spec version range with inclusive boundaries + types: { + AccountId: "[u8; 16]", + }, + typesAlias: { + assets: { + Balance: "u32", + }, + }, + }, + ], +} +``` + +- `.types` - scale type definitions similar to [polkadot.js types](https://polkadot.js.org/docs/api/start/types.extend#extension) +- `.typesAlias` - similar to [polkadot.js type aliases](https://polkadot.js.org/docs/api/start/types.extend#type-clashes) +- `.versions` - per-block range overrides/patches for above fields. + +All fields in the type bundle are optional and applied on top of a fixed set of well-known frame types. + +Note, that although the structure of subsquid types bundle is very similar to the one from polkadot.js, +those two are not fully compatible. + +## Differences from polkadot.js + +Polkadot.js provides lots of [specialized classes](https://polkadot.js.org/docs/api/start/types.basics) for various types of data. +Even primitives like `u32` are exposed through special classes. +In contrast, the squid framework works only with plain js primitives and objects. +For instance, account data is passed to the handler context as a plain byte array. To convert it into a standard human-readable format one should explicitly use a utility lib `@subsquid/ss58`: + +```typescript + // ... + from: ss58.codec('kusama').encode(rec.from), + to: ss58.codec('kusama').encode(rec.to), +``` + +## Graphql server extensions + +It is possible to extend `squid-graphql-server(1)` with custom +[type-graphql](https://typegraphql.com) resolvers and to add request validation. +For more details, consult [docs](https://docs.subsquid.io/graphql-api/). diff --git a/indexers/consensus-squid/commands.json b/indexers/consensus-squid/commands.json new file mode 100644 index 000000000..e36c754d1 --- /dev/null +++ b/indexers/consensus-squid/commands.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://cdn.subsquid.io/schemas/commands.json", + "commands": { + "clean": { + "description": "delete all build artifacts", + "cmd": ["npx", "--yes", "rimraf", "lib"] + }, + "build": { + "description": "Build the squid project", + "deps": ["clean"], + "cmd": ["tsc"] + }, + "up": { + "description": "Start a PG database", + "cmd": ["docker", "compose", "up", "-d"] + }, + "down": { + "description": "Drop a PG database", + "cmd": ["docker", "compose", "down"] + }, + "migration:apply": { + "description": "Apply the DB migrations", + "cmd": ["squid-typeorm-migration", "apply"] + }, + "migration:generate": { + "description": "Generate a DB migration matching the TypeORM entities", + "deps": ["build", "migration:clean"], + "cmd": ["squid-typeorm-migration", "generate"] + }, + "migration:clean": { + "description": "Clean the migrations folder", + "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] + }, + "migration": { + "deps": ["build"], + "cmd": ["squid-typeorm-migration", "generate"], + "hidden": true + }, + "codegen": { + "description": "Generate TypeORM entities from the schema file", + "cmd": ["squid-typeorm-codegen"] + }, + "typegen": { + "description": "Generate data access classes for an substrate metadata", + "cmd": ["squid-substrate-typegen", "./typegen.json"] + }, + "process": { + "description": "Load .env and start the squid processor", + "deps": ["build", "migration:apply"], + "cmd": ["node", "--require=dotenv/config", "lib/main.js"] + }, + "process:prod": { + "description": "Start the squid processor", + "deps": ["migration:apply"], + "cmd": ["node", "lib/main.js"], + "hidden": true + }, + "serve": { + "description": "Start the GraphQL API server", + "cmd": ["squid-graphql-server", "--subscriptions"] + }, + "serve:prod": { + "description": "Start the GraphQL API server with caching and limits", + "cmd": [ + "squid-graphql-server", + "--subscriptions", + "--dumb-cache", + "in-memory", + "--dumb-cache-ttl", + "1000", + "--dumb-cache-size", + "100", + "--dumb-cache-max-age", + "1000" + ] + }, + "check-updates": { + "cmd": [ + "npx", + "--yes", + "npm-check-updates", + "--filter=/subsquid/", + "--upgrade" + ], + "hidden": true + }, + "bump": { + "description": "Bump @subsquid packages to the latest versions", + "deps": ["check-updates"], + "cmd": ["npm", "i", "-f"] + }, + "open": { + "description": "Open a local browser window", + "cmd": ["npx", "--yes", "opener"] + } + } +} diff --git a/indexers/consensus-squid/docker-compose.yml b/indexers/consensus-squid/docker-compose.yml new file mode 100644 index 000000000..90fa8fbc5 --- /dev/null +++ b/indexers/consensus-squid/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3" + +services: + db: + image: postgres:15 + environment: + POSTGRES_DB: consensus-squid + POSTGRES_PASSWORD: postgres + shm_size: 1gb + ports: + - "${DB_PORT}:5432" + # command: ["postgres", "-c", "log_statement=all"] +# volumes: +# - ./data/db:/var/lib/postgresql/data + diff --git a/indexers/consensus-squid/gemini3h.jsonl b/indexers/consensus-squid/gemini3h.jsonl new file mode 100644 index 000000000..1bf2a8720 --- /dev/null +++ b/indexers/consensus-squid/gemini3h.jsonl @@ -0,0 +1,5 @@ +{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} +{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} +{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} +{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} +{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} diff --git a/indexers/consensus-squid/hasura/hasura_metadata.json b/indexers/consensus-squid/hasura/hasura_metadata.json new file mode 100644 index 000000000..e69de29bb diff --git a/indexers/consensus-squid/package-lock.json b/indexers/consensus-squid/package-lock.json new file mode 100644 index 000000000..cdddb7680 --- /dev/null +++ b/indexers/consensus-squid/package-lock.json @@ -0,0 +1,5167 @@ +{ + "name": "staking-squid", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "staking-squid", + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@apollo/protobufjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", + "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "long": "^4.0.0" + }, + "bin": { + "apollo-pbjs": "bin/pbjs", + "apollo-pbts": "bin/pbts" + } + }, + "node_modules/@apollo/usage-reporting-protobuf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", + "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", + "dependencies": { + "@apollo/protobufjs": "1.2.7" + } + }, + "node_modules/@apollo/utils.dropunuseddefinitions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", + "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.keyvadapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", + "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "dataloader": "^2.1.0", + "keyv": "^4.4.0" + } + }, + "node_modules/@apollo/utils.keyvaluecache": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", + "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", + "dependencies": { + "@apollo/utils.logger": "^1.0.0", + "lru-cache": "7.10.1 - 7.13.1" + } + }, + "node_modules/@apollo/utils.logger": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", + "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" + }, + "node_modules/@apollo/utils.printwithreducedwhitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", + "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.removealiases": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", + "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.sortast": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", + "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", + "dependencies": { + "lodash.sortby": "^4.7.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.stripsensitiveliterals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", + "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.usagereporting": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", + "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", + "dependencies": { + "@apollo/usage-reporting-protobuf": "^4.0.0", + "@apollo/utils.dropunuseddefinitions": "^1.1.0", + "@apollo/utils.printwithreducedwhitespace": "^1.1.0", + "@apollo/utils.removealiases": "1.0.0", + "@apollo/utils.sortast": "^1.1.0", + "@apollo/utils.stripsensitiveliterals": "^1.2.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollographql/apollo-tools": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", + "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", + "engines": { + "node": ">=8", + "npm": ">=6" + }, + "peerDependencies": { + "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@apollographql/graphql-playground-html": { + "version": "1.6.29", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", + "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", + "dependencies": { + "xss": "^1.0.8" + } + }, + "node_modules/@autonomys/auto-consensus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz", + "integrity": "sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg==", + "dependencies": { + "@autonomys/auto-utils": "^0.2.0" + } + }, + "node_modules/@autonomys/auto-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz", + "integrity": "sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw==", + "dependencies": { + "@polkadot/api": "^11.2.1", + "@polkadot/extension-dapp": "^0.47.5", + "fs": "^0.0.1-security" + } + }, + "node_modules/@exodus/schemasafe": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "dev": true + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock": { + "version": "8.7.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", + "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", + "dependencies": { + "@graphql-tools/schema": "^9.0.18", + "@graphql-tools/utils": "^9.2.1", + "fast-json-stable-stringify": "^2.1.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "dependencies": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "dependencies": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz", + "integrity": "sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + }, + "node_modules/@keyv/redis": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", + "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", + "dependencies": { + "ioredis": "^5.3.2" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz", + "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==", + "optional": true + }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz", + "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/utils": "0.0.1" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz", + "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.0.1", + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/substrate-client": "0.0.1", + "@polkadot-api/utils": "0.0.1" + }, + "peerDependencies": { + "rxjs": ">=7.8.0" + } + }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz", + "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.0.1", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/substrate-client": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz", + "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==", + "optional": true + }, + "node_modules/@polkadot-api/utils": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz", + "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==", + "optional": true + }, + "node_modules/@polkadot/api": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz", + "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==", + "dependencies": { + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/api-derive": "11.3.1", + "@polkadot/keyring": "^12.6.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/types-known": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz", + "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==", + "dependencies": { + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-base": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz", + "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==", + "dependencies": { + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-derive": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz", + "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==", + "dependencies": { + "@polkadot/api": "11.3.1", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/extension-dapp": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz", + "integrity": "sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng==", + "dependencies": { + "@polkadot/extension-inject": "0.47.6", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*", + "@polkadot/util-crypto": "*" + } + }, + "node_modules/@polkadot/extension-inject": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz", + "integrity": "sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g==", + "dependencies": { + "@polkadot/api": "^11.3.1", + "@polkadot/rpc-provider": "^11.3.1", + "@polkadot/types": "^11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/keyring": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", + "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==", + "dependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2" + } + }, + "node_modules/@polkadot/networks": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", + "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==", + "dependencies": { + "@polkadot/util": "12.6.2", + "@substrate/ss58-registry": "^1.44.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz", + "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==", + "dependencies": { + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-core": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz", + "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==", + "dependencies": { + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-provider": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz", + "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-support": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-fetch": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "@polkadot/x-ws": "^12.6.2", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@substrate/connect": "0.8.10" + } + }, + "node_modules/@polkadot/types": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz", + "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz", + "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==", + "dependencies": { + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-codec": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz", + "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==", + "dependencies": { + "@polkadot/util": "^12.6.2", + "@polkadot/x-bigint": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-create": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz", + "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==", + "dependencies": { + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-known": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz", + "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==", + "dependencies": { + "@polkadot/networks": "^12.6.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-support": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz", + "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==", + "dependencies": { + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", + "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==", + "dependencies": { + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-global": "12.6.2", + "@polkadot/x-textdecoder": "12.6.2", + "@polkadot/x-textencoder": "12.6.2", + "@types/bn.js": "^5.1.5", + "bn.js": "^5.2.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util-crypto": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz", + "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==", + "dependencies": { + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@polkadot/networks": "12.6.2", + "@polkadot/util": "12.6.2", + "@polkadot/wasm-crypto": "^7.3.2", + "@polkadot/wasm-util": "^7.3.2", + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-randomvalues": "12.6.2", + "@scure/base": "^1.1.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2" + } + }, + "node_modules/@polkadot/wasm-bridge": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz", + "integrity": "sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==", + "dependencies": { + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz", + "integrity": "sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==", + "dependencies": { + "@polkadot/wasm-bridge": "7.3.2", + "@polkadot/wasm-crypto-asmjs": "7.3.2", + "@polkadot/wasm-crypto-init": "7.3.2", + "@polkadot/wasm-crypto-wasm": "7.3.2", + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-asmjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz", + "integrity": "sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-init": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz", + "integrity": "sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==", + "dependencies": { + "@polkadot/wasm-bridge": "7.3.2", + "@polkadot/wasm-crypto-asmjs": "7.3.2", + "@polkadot/wasm-crypto-wasm": "7.3.2", + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-wasm": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz", + "integrity": "sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==", + "dependencies": { + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-util": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz", + "integrity": "sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/x-bigint": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", + "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", + "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "node-fetch": "^3.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-global": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", + "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-randomvalues": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", + "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/wasm-util": "*" + } + }, + "node_modules/@polkadot/x-textdecoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", + "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-textencoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", + "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", + "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2", + "ws": "^8.15.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" + }, + "node_modules/@subsquid/graphiql-console": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", + "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" + }, + "node_modules/@subsquid/graphql-server": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.1.tgz", + "integrity": "sha512-PMC5Kc9ptjhrBIBRvvhkHiSRUEGJqv6Bc838VnvLtF5kMrGjSI+pPUiA5t+rhdfxywX1j+ZEdBpaRypAGo6Otw==", + "dependencies": { + "@apollo/utils.keyvadapter": "~1.1.2", + "@apollo/utils.keyvaluecache": "~1.0.2", + "@graphql-tools/merge": "^9.0.1", + "@graphql-tools/schema": "^10.0.2", + "@graphql-tools/utils": "^10.0.11", + "@keyv/redis": "~2.5.8", + "@subsquid/logger": "^1.3.3", + "@subsquid/openreader": "^4.5.1", + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-http-server": "^2.0.0", + "@subsquid/util-internal-ts-node": "^0.0.0", + "apollo-server-core": "^3.13.0", + "apollo-server-express": "^3.13.0", + "apollo-server-plugin-response-cache": "~3.7.1", + "commander": "^11.1.0", + "dotenv": "^16.3.1", + "express": "^4.18.2", + "graphql": "^15.8.0", + "graphql-ws": "^5.14.2", + "keyv": "~4.5.4", + "pg": "^8.11.3", + "ws": "^8.14.2" + }, + "bin": { + "squid-graphql-server": "bin/run.js" + }, + "peerDependencies": { + "@subsquid/big-decimal": "^1.0.0", + "class-validator": "^0.14.0", + "type-graphql": "^1.2.0-rc.1", + "typeorm": "^0.3.17" + }, + "peerDependenciesMeta": { + "@subsquid/big-decimal": { + "optional": true + }, + "class-validator": { + "optional": true + }, + "type-graphql": { + "optional": true + }, + "typeorm": { + "optional": true + } + } + }, + "node_modules/@subsquid/http-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.4.0.tgz", + "integrity": "sha512-y+exFBQygbdvhmMrXVMUMkSQnmW8w7jz7zbRSCvjJRfmzXLjIi9dOQT2eIGN7e9GY/MvsW/qpDJEWhIbkcHsuw==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "node-fetch": "^3.3.2" + } + }, + "node_modules/@subsquid/logger": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", + "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-json": "^1.2.2", + "supports-color": "^8.1.1" + } + }, + "node_modules/@subsquid/openreader": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.1.tgz", + "integrity": "sha512-N4aFZ0AzYiFCzocqbW971M8LOIKo9E8d4lt5He4x8Jcm19hwYYlNy8wwnOv1USCxFO/uCPZm/RTkARlyjOL10A==", + "dependencies": { + "@graphql-tools/merge": "^9.0.1", + "@subsquid/graphiql-console": "^0.3.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", + "@subsquid/util-naming": "^1.2.2", + "apollo-server-core": "^3.13.0", + "apollo-server-express": "^3.13.0", + "commander": "^11.1.0", + "deep-equal": "^2.2.3", + "express": "^4.18.2", + "graphql": "^15.8.0", + "graphql-parse-resolve-info": "^4.14.0", + "graphql-ws": "^5.14.2", + "pg": "^8.11.3", + "ws": "^8.14.2" + }, + "bin": { + "openreader": "bin/main.js" + }, + "peerDependencies": { + "@subsquid/big-decimal": "^1.0.0" + }, + "peerDependenciesMeta": { + "@subsquid/big-decimal": { + "optional": true + } + } + }, + "node_modules/@subsquid/rpc-client": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.8.0.tgz", + "integrity": "sha512-cFtxw1O/8iWYcp/bJmErPTDnMOm1YHuK1MnDoMDlG+q+yCFW8YzvFayNwOjnzyIaJuwoluMeMw1euW3EOaRLAg==", + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-binary-heap": "^1.0.0", + "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-json-fix-unsafe-integers": "^0.0.0", + "websocket": "^1.0.34" + } + }, + "node_modules/@subsquid/scale-codec": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", + "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-json": "^1.2.2" + } + }, + "node_modules/@subsquid/scale-type-system": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", + "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", + "peer": true, + "dependencies": { + "@subsquid/util-internal": "^3.0.0" + }, + "peerDependencies": { + "@subsquid/scale-codec": "^4.0.1" + } + }, + "node_modules/@subsquid/ss58": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", + "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", + "dependencies": { + "@subsquid/ss58-codec": "^1.2.3", + "@subsquid/util-internal-hex": "^1.2.2" + } + }, + "node_modules/@subsquid/ss58-codec": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", + "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", + "dependencies": { + "base-x": "^4.0.0", + "blake2b": "^2.1.4" + } + }, + "node_modules/@subsquid/substrate-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.4.tgz", + "integrity": "sha512-Ad5B1f4I4SqmGJfOAjuKF5zD2B6VSYNx67XpfHcNMoT9yBc8tTf87EEYb37wty1K6s6ZZTh60zWec2dUviIltA==", + "dependencies": { + "@subsquid/scale-codec": "^4.0.1", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-xxhash": "^1.2.2", + "@substrate/calc": "^0.2.8", + "blake2b": "^2.1.4" + }, + "peerDependencies": { + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/substrate-data-raw": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.2.tgz", + "integrity": "sha512-7avtgVy77acgPG8zBoJ9siTpuZ3stNdUojTP4RQeJrArpR4jbyh6Ui3Cv2nIfLPxNfVpV11qoPQ1XVKv7vb0vQ==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-timeout": "^2.3.2" + }, + "peerDependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.7.0" + } + }, + "node_modules/@subsquid/substrate-metadata-explorer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", + "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", + "dev": true, + "dependencies": { + "@subsquid/logger": "^1.3.2", + "@subsquid/rpc-client": "^4.5.0", + "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-read-lines": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-substrate-metadata-explorer": "bin/run.js", + "substrate-metadata-explorer": "bin/run.js" + } + }, + "node_modules/@subsquid/substrate-processor": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.3.0.tgz", + "integrity": "sha512-EX6bzrCfmFErMayAqAEivCW7QmTc5gK/SDNLEoQXvVValAJgzXp1Ur/y58Isr5XsBogQ0OY8cSzQYD1dgkGqjA==", + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-data": "^4.0.4", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-archive-client": "^0.1.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-json": "^1.2.3", + "@subsquid/util-internal-processor-tools": "^4.1.0", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-internal-validation": "^0.4.0" + }, + "peerDependencies": { + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/substrate-runtime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz", + "integrity": "sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw==", + "peer": true, + "dependencies": { + "@subsquid/scale-codec": "^4.0.1", + "@subsquid/scale-type-system": "^1.0.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "@subsquid/util-xxhash": "^1.2.2", + "blake2b": "^2.1.4" + } + }, + "node_modules/@subsquid/substrate-typegen": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz", + "integrity": "sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g==", + "dev": true, + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-internal-config": "^2.2.2", + "@subsquid/util-internal-read-lines": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-substrate-typegen": "bin/run.js" + }, + "peerDependencies": { + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/typeorm-codegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.0.tgz", + "integrity": "sha512-AZ3rQr/uT3wOmequjfrfkp0sOl7XGj2yG33gNelJOTtbMOfqRucI82lP+eslnmiAORX2dzDvbs97hIvxpf2WMA==", + "dev": true, + "dependencies": { + "@subsquid/openreader": "^4.5.1", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-typeorm-codegen": "bin/run.js" + } + }, + "node_modules/@subsquid/typeorm-config": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", + "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", + "dependencies": { + "@subsquid/logger": "^1.3.2", + "@subsquid/util-internal-ts-node": "^0.0.0", + "@subsquid/util-naming": "^1.2.2" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + }, + "peerDependenciesMeta": { + "typeorm": { + "optional": true + } + } + }, + "node_modules/@subsquid/typeorm-migration": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", + "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", + "dependencies": { + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-internal-ts-node": "^0.0.0", + "commander": "^11.1.0", + "dotenv": "^16.3.1" + }, + "bin": { + "squid-typeorm-migration": "bin/squid-typeorm-migration", + "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", + "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", + "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", + "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + } + }, + "node_modules/@subsquid/typeorm-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.4.0.tgz", + "integrity": "sha512-Ff96ySH3btbGC8QgFkMEtuylz8lrBeAcbBSy/XF9pQLDdpun01yxekJwmKKPswQxYqSQgwEt38Nmp2jvC0BysQ==", + "dependencies": { + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.1.0" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + } + }, + "node_modules/@subsquid/util-internal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", + "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" + }, + "node_modules/@subsquid/util-internal-archive-client": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz", + "integrity": "sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" + }, + "peerDependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-internal-binary-heap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", + "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" + }, + "node_modules/@subsquid/util-internal-code-printer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", + "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" + }, + "node_modules/@subsquid/util-internal-commander": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", + "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", + "peerDependencies": { + "commander": "^11.1.0" + } + }, + "node_modules/@subsquid/util-internal-config": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", + "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", + "dev": true, + "dependencies": { + "@exodus/schemasafe": "^1.3.0", + "jsonc-parser": "^3.2.0" + } + }, + "node_modules/@subsquid/util-internal-counters": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", + "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" + }, + "node_modules/@subsquid/util-internal-hex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", + "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" + }, + "node_modules/@subsquid/util-internal-http-server": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz", + "integrity": "sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "stoppable": "^1.1.0" + } + }, + "node_modules/@subsquid/util-internal-ingest-tools": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.2.tgz", + "integrity": "sha512-1fgi4W6x1B2+fYLGwjo+R4FjbLvR2b9h2/0EEqT8Ww6o4V15EubLf1TjBr8o/AWGN5Y/eYaMqWlFzbQsKQlcUQ==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" + }, + "peerDependencies": { + "@subsquid/util-internal-archive-client": "^0.1.2" + }, + "peerDependenciesMeta": { + "@subsquid/util-internal-archive-client": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-internal-json": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz", + "integrity": "sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2" + } + }, + "node_modules/@subsquid/util-internal-json-fix-unsafe-integers": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz", + "integrity": "sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w==" + }, + "node_modules/@subsquid/util-internal-processor-tools": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.0.tgz", + "integrity": "sha512-7yOsPTB+sTSntNa79NVHo+lHFFs/QtJttut0IYp89gXNEOhAZdJ2MrwawHVTW+DEZ+UILMOO356fos42On9yGw==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-prometheus-server": "^1.3.0", + "@subsquid/util-internal-range": "^0.3.0", + "prom-client": "^14.2.0" + } + }, + "node_modules/@subsquid/util-internal-prometheus-server": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz", + "integrity": "sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug==", + "dependencies": { + "@subsquid/util-internal-http-server": "^2.0.0" + }, + "peerDependencies": { + "prom-client": "^14.2.0" + } + }, + "node_modules/@subsquid/util-internal-range": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz", + "integrity": "sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-binary-heap": "^1.0.0" + } + }, + "node_modules/@subsquid/util-internal-read-lines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", + "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", + "dev": true + }, + "node_modules/@subsquid/util-internal-ts-node": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", + "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" + }, + "node_modules/@subsquid/util-internal-validation": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-validation/-/util-internal-validation-0.4.0.tgz", + "integrity": "sha512-YrwzbMd2Ez4ufCHDWc/AZpNqZ8LR/YCJ+1Aox5HF46INvkFVun5g5YI3HjXReMwvwrpT4Gsy+JvDTYvaHtTUlQ==", + "peerDependencies": { + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-naming": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", + "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", + "dependencies": { + "camelcase": "^6.3.0", + "inflected": "^2.1.0" + } + }, + "node_modules/@subsquid/util-timeout": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", + "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" + }, + "node_modules/@subsquid/util-xxhash": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", + "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", + "dependencies": { + "xxhash-wasm": "^1.0.2", + "xxhashjs": "^0.2.2" + } + }, + "node_modules/@substrate/calc": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", + "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" + }, + "node_modules/@substrate/connect": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz", + "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==", + "deprecated": "versions below 1.x are no longer maintained", + "optional": true, + "dependencies": { + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "@substrate/light-client-extension-helpers": "^0.0.6", + "smoldot": "2.0.22" + } + }, + "node_modules/@substrate/connect-extension-protocol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz", + "integrity": "sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.2.0.tgz", + "integrity": "sha512-BgcTHKteSAcEQs5ySNTYOO6ODQHVHwPgDrjYQhL0r8ZygY4cyXa5e2O//3tXNJiDopFHdqO8FBAy2Gbht0i0PA==", + "optional": true + }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz", + "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "0.0.1", + "@polkadot-api/observable-client": "0.1.0", + "@polkadot-api/substrate-client": "0.0.1", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, + "node_modules/@substrate/ss58-registry": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz", + "integrity": "sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA==" + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/apollo-datasource": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", + "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", + "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "apollo-server-env": "^4.2.1" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/apollo-reporting-protobuf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", + "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", + "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/protobufjs": "1.2.6" + } + }, + "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", + "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "bin": { + "apollo-pbjs": "bin/pbjs", + "apollo-pbts": "bin/pbts" + } + }, + "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/apollo-server-core": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", + "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "@apollo/utils.usagereporting": "^1.0.0", + "@apollographql/apollo-tools": "^0.5.3", + "@apollographql/graphql-playground-html": "1.6.29", + "@graphql-tools/mock": "^8.1.2", + "@graphql-tools/schema": "^8.0.0", + "@josephg/resolvable": "^1.0.0", + "apollo-datasource": "^3.3.2", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1", + "apollo-server-errors": "^3.3.1", + "apollo-server-plugin-base": "^3.7.2", + "apollo-server-types": "^3.8.0", + "async-retry": "^1.2.1", + "fast-json-stable-stringify": "^2.1.0", + "graphql-tag": "^2.11.0", + "loglevel": "^1.6.8", + "lru-cache": "^6.0.0", + "node-abort-controller": "^3.0.1", + "sha.js": "^2.4.11", + "uuid": "^9.0.0", + "whatwg-mimetype": "^3.0.0" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", + "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", + "dependencies": { + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", + "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", + "dependencies": { + "@graphql-tools/merge": "8.3.1", + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", + "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/apollo-server-core/node_modules/value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/apollo-server-env": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", + "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", + "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "node-fetch": "^2.6.7" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/apollo-server-env/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/apollo-server-errors": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", + "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", + "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-express": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", + "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", + "dependencies": { + "@types/accepts": "^1.3.5", + "@types/body-parser": "1.19.2", + "@types/cors": "2.8.12", + "@types/express": "4.17.14", + "@types/express-serve-static-core": "4.17.31", + "accepts": "^1.3.5", + "apollo-server-core": "^3.13.0", + "apollo-server-types": "^3.8.0", + "body-parser": "^1.19.0", + "cors": "^2.8.5", + "parseurl": "^1.3.3" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "express": "^4.17.1", + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-plugin-base": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", + "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", + "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "apollo-server-types": "^3.8.0" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-plugin-response-cache": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", + "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", + "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "apollo-server-plugin-base": "^3.6.3", + "apollo-server-types": "^3.6.3" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-types": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", + "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", + "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bintrees": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" + }, + "node_modules/blake2b": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", + "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", + "dependencies": { + "blake2b-wasm": "^2.4.0", + "nanoassert": "^2.0.0" + } + }, + "node_modules/blake2b-wasm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", + "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-highlight/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-parse-resolve-info": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", + "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", + "dependencies": { + "debug": "^4.1.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "peerDependencies": { + "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" + } + }, + "node_modules/graphql-parse-resolve-info/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/graphql-parse-resolve-info/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-ws": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz", + "integrity": "sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": ">=0.11 <=16" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflected": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", + "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ioredis": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", + "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ioredis/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ioredis/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/loglevel": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/lru-cache": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", + "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mock-socket": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoassert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", + "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/nock": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/nock/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nock/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pg": { + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prom-client": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "dependencies": { + "tdigest": "^0.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scale-ts": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.0.tgz", + "integrity": "sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==", + "optional": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smoldot": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz", + "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==", + "optional": true, + "dependencies": { + "ws": "^8.8.1" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tdigest": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "dependencies": { + "bintrees": "1.0.2" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typeorm": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "chalk": "^4.1.2", + "cli-highlight": "^2.1.11", + "dayjs": "^1.11.9", + "debug": "^4.3.4", + "dotenv": "^16.0.3", + "glob": "^10.3.10", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.2.1", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0", + "mssql": "^9.1.1 || ^10.0.1", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xss": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" + }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dependencies": { + "cuint": "^0.2.2" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/indexers/consensus-squid/package.json b/indexers/consensus-squid/package.json new file mode 100644 index 000000000..7c5598127 --- /dev/null +++ b/indexers/consensus-squid/package.json @@ -0,0 +1,38 @@ +{ + "name": "consensus-squid", + "private": true, + "engines": { + "node": ">=16" + }, + "scripts": { + "build": "rm -rf lib && tsc", + "deploy": "sqd deploy --org autonomys-labs ." + }, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + } +} diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql new file mode 100644 index 000000000..08401e04c --- /dev/null +++ b/indexers/consensus-squid/schema.graphql @@ -0,0 +1,295 @@ +enum DomainRuntime { + EVM + AutoId +} + +type Domain @entity { + id: ID! @index + sortId: Int! @index + accountId: String! @index + name: String! @index + runtimeId: Int! @index + runtime: DomainRuntime! @index + runtimeInfo: String! + completedEpoch: Int! @index + lastDomainBlockNumber: Int! @index + totalDeposits: BigInt! + totalTaxCollected: BigInt! + totalRewardsCollected: BigInt! + totalTransfersIn: BigInt! + transfersInCount: Int! + totalTransfersOut: BigInt! + transfersOutCount: Int! + totalRejectedTransfersClaimed: BigInt! + rejectedTransfersClaimedCount: Int! + totalTransfersRejected: BigInt! + transfersRejectedCount: Int! + totalVolume: BigInt! @index + totalConsensusStorageFee: BigInt! + totalDomainExecutionFee: BigInt! + totalBurnedBalance: BigInt! + currentTotalStake: BigInt! + currentStorageFeeDeposit: BigInt! + bundleCount: Int! + lastBundleAt: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type Account @entity { + id: ID! @index + totalDeposits: BigInt! + totalTaxCollected: BigInt! + createdAt: Int! @index + updatedAt: Int! @index +} + +enum OperatorStatus { + PENDING + REGISTERED + DEREGISTERED + READY_TO_UNLOCK + SLASHED +} + +type Operator @entity { + id: ID! @index + sortId: Int! @index + accountId: String! @index + domainId: String! @index + signingKey: String! @index + minimumNominatorStake: BigInt! + nominationTax: Int! + name: String! @index + description: String! + icon: String! + banner: String! + website: String! + websiteVerified: Boolean! + email: String! + emailVerified: Boolean! + discord: String! + github: String! + twitter: String! + currentTotalStake: BigInt! + currentStorageFeeDeposit: BigInt! + currentEpochRewards: BigInt! + currentTotalShares: BigInt! + rawStatus: String! + totalDeposits: BigInt! + totalTaxCollected: BigInt! + totalRewardsCollected: BigInt! + totalTransfersIn: BigInt! + transfersInCount: Int! + totalTransfersOut: BigInt! + transfersOutCount: Int! + totalRejectedTransfersClaimed: BigInt! + rejectedTransfersClaimedCount: Int! + totalTransfersRejected: BigInt! + transfersRejectedCount: Int! + totalVolume: BigInt! @index + totalConsensusStorageFee: BigInt! + totalDomainExecutionFee: BigInt! + totalBurnedBalance: BigInt! + activeEpochCount: Int! + bundleCount: Int! + status: OperatorStatus! @index + lastBundleAt: Int! + createdAt: Int! @index + updatedAt: Int! @index +} + +type DomainBlock @entity { + id: ID! @index + domainId: String! @index + blockNumber: Int! @index + blockHash: String! @index + extrinsicRoot: String! + consensusBlockNumber: Int! @index + consensusBlockHash: String! @index + timestamp: DateTime! @index + createdAt: Int! @index + updatedAt: Int! @index +} + +type Bundle @entity { + id: ID! @index + domainId: String! @index + domainBlockId: String! @index + domainBlockNumber: Int! @index + domainBlockHash: String! + domainBlockExtrinsicRoot: String! + consensusBlockNumber: Int! @index + consensusBlockHash: String! @index + totalTransfersIn: BigInt! + transfersInCount: Int! + totalTransfersOut: BigInt! + transfersOutCount: Int! + totalRejectedTransfersClaimed: BigInt! + rejectedTransfersClaimedCount: Int! + totalTransfersRejected: BigInt! + transfersRejectedCount: Int! + totalVolume: BigInt! @index + consensusStorageFee: BigInt! + domainExecutionFee: BigInt! + burnedBalance: BigInt! +} + +type BundleAuthor @entity { + id: ID! @index + domainId: String! @index + accountId: String! @index + operatorId: String! @index + bundleId: String! @index + domainBlockId: String! @index +} + +enum NominatorStatus { + PENDING + STAKING + DEREGISTERED + READY_TO_UNLOCK + SLASHED +} + +type Nominator @entity { + id: ID! @index + accountId: String! @index + domainId: String! @index + operatorId: String! @index + knownShares: BigInt! + knownStorageFeeDeposit: BigInt! + pendingAmount: BigInt! + pendingStorageFeeDeposit: BigInt! + pendingEffectiveDomainEpoch: Int! + totalWithdrawalAmounts: BigInt! + totalStorageFeeRefund: BigInt! + unlockAtConfirmedDomainBlockNumber: [Int!]! + pendingShares: BigInt! + pendingStorageFeeRefund: BigInt! + totalDeposits: BigInt! + status: NominatorStatus! @index + createdAt: Int! @index + updatedAt: Int! @index +} + +enum DepositStatus { + PENDING + DEPOSITED +} + +type Deposit @entity { + id: ID! @index + accountId: String! @index + domainId: String! @index + operatorId: String! @index + nominatorId: String! @index + amount: BigInt! + storageFeeDeposit: BigInt! + status: DepositStatus! @index + timestamp: DateTime! @index + extrinsicHash: String! @index + epochDepositedAt: Int! @index + domainBlockNumberDepositedAt: Int! @index + createdAt: Int! @index + stakedAt: Int! @index + updatedAt: Int! @index +} + +enum WithdrawalStatus { + PENDING + READY + WITHDRAW +} + +type Withdrawal @entity { + id: ID! @index + accountId: String! @index + domainId: String! @index + operatorId: String! @index + nominatorId: String! @index + shares: BigInt! + status: WithdrawalStatus! @index + timestamp: DateTime! @index + withdrawExtrinsicHash: String! @index + unlockExtrinsicHash: String! @index + epochWithdrawalRequestedAt: Int! @index + domainBlockNumberWithdrawalRequestedAt: Int! @index + createdAt: Int! @index + readyAt: Int! @index + unlockedAt: Int! @index + updatedAt: Int! @index +} + +type OperatorUnlockedFunds @entity { + id: ID! @index + blockNumber: Int! @index + operator: Operator! + nominator: Nominator! + nominatorAccount: String! + timestamp: DateTime! @index + extrinsicHash: String! @index + amount: BigInt! +} + +type RewardEvent @entity { + id: ID! @index + domainId: String! @index + operatorId: String! @index + amount: BigInt! + timestamp: DateTime! @index + blockNumber: Int! @index + extrinsicHash: String! @index +} + +type Stats @entity { + id: ID! @index + blockNumber: Int! @index + totalStaked: BigInt! + totalFees: BigInt! + totalDeposits: BigInt! + totalWithdrawals: BigInt! + allTimeHighStaked: BigInt! + domainsCount: Int! + operatorsCount: Int! + activeOperatorsCount: Int! + slashedOperatorsCount: Int! + nominatorsCount: Int! + depositsCount: Int! + withdrawalsCount: Int! + timestamp: DateTime! @index +} + +type StatsPerDomain @entity { + id: ID! @index + domainId: String! @index + blockNumber: Int! @index + totalStaked: BigInt! + totalFees: BigInt! + totalDeposits: BigInt! + totalWithdrawals: BigInt! + allTimeHighStaked: BigInt! + operatorsCount: Int! + activeOperatorsCount: Int! + slashedOperatorsCount: Int! + nominatorsCount: Int! + depositsCount: Int! + withdrawalsCount: Int! + timestamp: DateTime! @index +} + +type StatsPerOperator @entity { + id: ID! @index + domainId: String! @index + operatorId: String! @index + blockNumber: Int! @index + totalStaked: BigInt! + totalFees: BigInt! + totalDeposits: BigInt! + totalWithdrawals: BigInt! + allTimeHighStaked: BigInt! + nominatorsCount: Int! + depositsCount: Int! + withdrawalsCount: Int! + timestamp: DateTime! @index +} diff --git a/indexers/consensus-squid/scripts/docker-run.sh b/indexers/consensus-squid/scripts/docker-run.sh new file mode 100644 index 000000000..1947733d9 --- /dev/null +++ b/indexers/consensus-squid/scripts/docker-run.sh @@ -0,0 +1,5 @@ +set -e +docker build . --target processor -t squid-processor +# make sure the port matches .env. +# For Linux, add --add-host=host.docker.internal:host-gateway +docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/consensus-squid/scripts/sub-client.js b/indexers/consensus-squid/scripts/sub-client.js new file mode 100644 index 000000000..87ba38a3c --- /dev/null +++ b/indexers/consensus-squid/scripts/sub-client.js @@ -0,0 +1,42 @@ +const WebSocket = require('ws') +const { createClient } = require('graphql-ws'); + +const port = process.env.GQL_PORT || 4350 +const host = process.env.GQL_HOST || 'localhost' +const proto = process.env.GQL_PROTO || 'ws' + + +const client = createClient({ + webSocketImpl: WebSocket, + url: `${proto}://${host}:${port}/graphql`, +}); + +client.subscribe( + { + query: ` + subscription { + transfers(limit: 5, orderBy: timestamp_DESC) { + amount + blockNumber + from { + id + } + to { + id + } + } + } + `, + }, + { + next: (data) => { + console.log(`New transfers: ${JSON.stringify(data)}`); + }, + error: (error) => { + console.error('error', error); + }, + complete: () => { + console.log('done!'); + }, + } +); \ No newline at end of file diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml new file mode 100644 index 000000000..f32f325b3 --- /dev/null +++ b/indexers/consensus-squid/squid.yaml @@ -0,0 +1,33 @@ +manifestVersion: subsquid.io/v0.1 +name: consensus-squid +version: 1 +description: Autonomys - Astral - Consensus Indexer +build: +deploy: + env: + HASURA_GRAPHQL_ADMIN_SECRET: "${{ secrets.HASURA_SECRET }}" + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user + HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: "true" + addons: + postgres: + hasura: + processor: + cmd: + - sqd + - process:prod + env: + CONSENSUS_GATEWAY: ${{ secrets.CONSENSUS_GATEWAY }} + RPC_CONSENSUS_HTTP: ${{ secrets.RPC_CONSENSUS_ENDPOINT }} + api: + cmd: + - sqd + - serve:prod + +scale: + dedicated: true + addons: + postgres: + storage: 100G + profile: large + processor: + profile: medium diff --git a/indexers/consensus-squid/src/main.ts b/indexers/consensus-squid/src/main.ts new file mode 100644 index 000000000..92c5f7e7f --- /dev/null +++ b/indexers/consensus-squid/src/main.ts @@ -0,0 +1,15 @@ +import { createConnection } from "@autonomys/auto-utils"; +import { TypeormDatabase } from "@subsquid/typeorm-store"; +import { assertNotNull } from "@subsquid/util-internal"; +import { processBlocks } from "./blocks"; +import { processor } from "./processor"; + +processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { + const api = await createConnection( + assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC_CONSENSUS_HTTP env") + ); + + await processBlocks(ctx, api); + + await api.disconnect(); +}); diff --git a/indexers/consensus-squid/tsconfig.json b/indexers/consensus-squid/tsconfig.json new file mode 100644 index 000000000..f1f63d568 --- /dev/null +++ b/indexers/consensus-squid/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es2020", + "outDir": "lib", + "rootDir": "src", + "strict": true, + "declaration": false, + "sourceMap": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "skipLibCheck": true + }, + "include": ["src"], + "exclude": [ + "node_modules" + ] +} From 858568881a306796b748108300cf0bddf1f51467 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:13:45 -0400 Subject: [PATCH 02/42] run typegen --- .../src/types/balances/calls.ts | 119 + .../src/types/balances/constants.ts | 59 + .../src/types/balances/events.ts | 312 ++ .../src/types/balances/storage.ts | 253 + indexers/consensus-squid/src/types/calls.ts | 12 + .../consensus-squid/src/types/constants.ts | 11 + .../src/types/domains/calls.ts | 278 + .../src/types/domains/constants.ts | 213 + .../src/types/domains/events.ts | 250 + .../src/types/domains/storage.ts | 1226 +++++ indexers/consensus-squid/src/types/events.ts | 13 + indexers/consensus-squid/src/types/index.ts | 8 + .../src/types/messenger/calls.ts | 146 + .../src/types/messenger/constants.ts | 23 + .../src/types/messenger/events.ts | 150 + .../src/types/messenger/storage.ts | 332 ++ .../consensus-squid/src/types/mmr/storage.ts | 64 + .../src/types/offences-subspace/events.ts | 17 + .../src/types/offences-subspace/storage.ts | 90 + .../src/types/rewards/calls.ts | 16 + .../src/types/rewards/constants.ts | 61 + .../src/types/rewards/events.ts | 30 + .../src/types/rewards/storage.ts | 82 + .../src/types/runtime-configs/calls.ts | 53 + .../src/types/runtime-configs/storage.ts | 75 + indexers/consensus-squid/src/types/storage.ts | 16 + .../src/types/subspace-mmr/storage.ts | 26 + .../src/types/subspace/calls.ts | 79 + .../src/types/subspace/constants.ts | 154 + .../src/types/subspace/events.ts | 31 + .../src/types/subspace/storage.ts | 390 ++ .../consensus-squid/src/types/sudo/calls.ts | 164 + .../consensus-squid/src/types/sudo/events.ts | 65 + .../consensus-squid/src/types/sudo/storage.ts | 17 + indexers/consensus-squid/src/types/support.ts | 142 + .../consensus-squid/src/types/system/calls.ts | 146 + .../src/types/system/constants.ts | 66 + .../src/types/system/events.ts | 94 + .../src/types/system/storage.ts | 405 ++ .../src/types/timestamp/calls.ts | 14 + .../src/types/timestamp/constants.ts | 16 + .../src/types/timestamp/storage.ts | 39 + .../src/types/transaction-fees/constants.ts | 43 + .../src/types/transaction-fees/events.ts | 54 + .../src/types/transaction-fees/storage.ts | 86 + .../types/transaction-payment/constants.ts | 31 + .../src/types/transaction-payment/events.ts | 18 + .../src/types/transaction-payment/storage.ts | 22 + .../src/types/transporter/calls.ts | 16 + .../src/types/transporter/events.ts | 86 + .../src/types/transporter/storage.ts | 132 + .../src/types/utility/calls.ts | 320 ++ .../src/types/utility/constants.ts | 11 + .../src/types/utility/events.ts | 76 + indexers/consensus-squid/src/types/v0.ts | 4642 +++++++++++++++++ indexers/consensus-squid/src/types/v1.ts | 4097 +++++++++++++++ indexers/consensus-squid/src/types/v3.ts | 2472 +++++++++ indexers/consensus-squid/src/types/v5.ts | 4370 ++++++++++++++++ .../src/types/vesting/calls.ts | 54 + .../src/types/vesting/constants.ts | 11 + .../src/types/vesting/events.ts | 44 + .../src/types/vesting/storage.ts | 31 + indexers/consensus-squid/typegen.json | 8 + 63 files changed, 22381 insertions(+) create mode 100644 indexers/consensus-squid/src/types/balances/calls.ts create mode 100644 indexers/consensus-squid/src/types/balances/constants.ts create mode 100644 indexers/consensus-squid/src/types/balances/events.ts create mode 100644 indexers/consensus-squid/src/types/balances/storage.ts create mode 100644 indexers/consensus-squid/src/types/calls.ts create mode 100644 indexers/consensus-squid/src/types/constants.ts create mode 100644 indexers/consensus-squid/src/types/domains/calls.ts create mode 100644 indexers/consensus-squid/src/types/domains/constants.ts create mode 100644 indexers/consensus-squid/src/types/domains/events.ts create mode 100644 indexers/consensus-squid/src/types/domains/storage.ts create mode 100644 indexers/consensus-squid/src/types/events.ts create mode 100644 indexers/consensus-squid/src/types/index.ts create mode 100644 indexers/consensus-squid/src/types/messenger/calls.ts create mode 100644 indexers/consensus-squid/src/types/messenger/constants.ts create mode 100644 indexers/consensus-squid/src/types/messenger/events.ts create mode 100644 indexers/consensus-squid/src/types/messenger/storage.ts create mode 100644 indexers/consensus-squid/src/types/mmr/storage.ts create mode 100644 indexers/consensus-squid/src/types/offences-subspace/events.ts create mode 100644 indexers/consensus-squid/src/types/offences-subspace/storage.ts create mode 100644 indexers/consensus-squid/src/types/rewards/calls.ts create mode 100644 indexers/consensus-squid/src/types/rewards/constants.ts create mode 100644 indexers/consensus-squid/src/types/rewards/events.ts create mode 100644 indexers/consensus-squid/src/types/rewards/storage.ts create mode 100644 indexers/consensus-squid/src/types/runtime-configs/calls.ts create mode 100644 indexers/consensus-squid/src/types/runtime-configs/storage.ts create mode 100644 indexers/consensus-squid/src/types/storage.ts create mode 100644 indexers/consensus-squid/src/types/subspace-mmr/storage.ts create mode 100644 indexers/consensus-squid/src/types/subspace/calls.ts create mode 100644 indexers/consensus-squid/src/types/subspace/constants.ts create mode 100644 indexers/consensus-squid/src/types/subspace/events.ts create mode 100644 indexers/consensus-squid/src/types/subspace/storage.ts create mode 100644 indexers/consensus-squid/src/types/sudo/calls.ts create mode 100644 indexers/consensus-squid/src/types/sudo/events.ts create mode 100644 indexers/consensus-squid/src/types/sudo/storage.ts create mode 100644 indexers/consensus-squid/src/types/support.ts create mode 100644 indexers/consensus-squid/src/types/system/calls.ts create mode 100644 indexers/consensus-squid/src/types/system/constants.ts create mode 100644 indexers/consensus-squid/src/types/system/events.ts create mode 100644 indexers/consensus-squid/src/types/system/storage.ts create mode 100644 indexers/consensus-squid/src/types/timestamp/calls.ts create mode 100644 indexers/consensus-squid/src/types/timestamp/constants.ts create mode 100644 indexers/consensus-squid/src/types/timestamp/storage.ts create mode 100644 indexers/consensus-squid/src/types/transaction-fees/constants.ts create mode 100644 indexers/consensus-squid/src/types/transaction-fees/events.ts create mode 100644 indexers/consensus-squid/src/types/transaction-fees/storage.ts create mode 100644 indexers/consensus-squid/src/types/transaction-payment/constants.ts create mode 100644 indexers/consensus-squid/src/types/transaction-payment/events.ts create mode 100644 indexers/consensus-squid/src/types/transaction-payment/storage.ts create mode 100644 indexers/consensus-squid/src/types/transporter/calls.ts create mode 100644 indexers/consensus-squid/src/types/transporter/events.ts create mode 100644 indexers/consensus-squid/src/types/transporter/storage.ts create mode 100644 indexers/consensus-squid/src/types/utility/calls.ts create mode 100644 indexers/consensus-squid/src/types/utility/constants.ts create mode 100644 indexers/consensus-squid/src/types/utility/events.ts create mode 100644 indexers/consensus-squid/src/types/v0.ts create mode 100644 indexers/consensus-squid/src/types/v1.ts create mode 100644 indexers/consensus-squid/src/types/v3.ts create mode 100644 indexers/consensus-squid/src/types/v5.ts create mode 100644 indexers/consensus-squid/src/types/vesting/calls.ts create mode 100644 indexers/consensus-squid/src/types/vesting/constants.ts create mode 100644 indexers/consensus-squid/src/types/vesting/events.ts create mode 100644 indexers/consensus-squid/src/types/vesting/storage.ts create mode 100644 indexers/consensus-squid/typegen.json diff --git a/indexers/consensus-squid/src/types/balances/calls.ts b/indexers/consensus-squid/src/types/balances/calls.ts new file mode 100644 index 000000000..03fbec1ea --- /dev/null +++ b/indexers/consensus-squid/src/types/balances/calls.ts @@ -0,0 +1,119 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v5 from '../v5' + +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }) + ), +} + +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }) + ), +} + +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }) + ), +} + +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }) + ), +} + +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/balances/constants.ts b/indexers/consensus-squid/src/types/balances/constants.ts new file mode 100644 index 000000000..5cab2c7e3 --- /dev/null +++ b/indexers/consensus-squid/src/types/balances/constants.ts @@ -0,0 +1,59 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType( + 'Balances.ExistentialDeposit', + sts.bigint() + ), +} + +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType( + 'Balances.MaxLocks', + sts.number() + ), +} + +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType( + 'Balances.MaxReserves', + sts.number() + ), +} + +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxHolds', + sts.number() + ), +} + +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxFreezes', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/balances/events.ts b/indexers/consensus-squid/src/types/balances/events.ts new file mode 100644 index 000000000..fda7f6e59 --- /dev/null +++ b/indexers/consensus-squid/src/types/balances/events.ts @@ -0,0 +1,312 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }) + ), +} + +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }) + ), +} + +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }) + ), +} + +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }) + ), +} + +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }) + ), +} + +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }) + ), +} + +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/balances/storage.ts b/indexers/consensus-squid/src/types/balances/storage.ts new file mode 100644 index 000000000..5f4a19212 --- /dev/null +++ b/indexers/consensus-squid/src/types/balances/storage.ts @@ -0,0 +1,253 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' + +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +} + +/** + * The total units issued in the system. + */ +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, +} + +/** + * The total units of outstanding deactivated balance in the system. + */ +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +} + +/** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, +} + +/** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, +} + +/** + * Named reserves on some account balances. + */ +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, +} + +/** + * Holds on account balances. + */ +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> +} + +/** + * Holds on account balances. + */ +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> +} + +/** + * Holds on account balances. + */ +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, +} + +/** + * Freeze locks on account balances. + */ +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> +} diff --git a/indexers/consensus-squid/src/types/calls.ts b/indexers/consensus-squid/src/types/calls.ts new file mode 100644 index 000000000..e6fe24ab0 --- /dev/null +++ b/indexers/consensus-squid/src/types/calls.ts @@ -0,0 +1,12 @@ +export * as system from './system/calls' +export * as timestamp from './timestamp/calls' +export * as subspace from './subspace/calls' +export * as balances from './balances/calls' +export * as utility from './utility/calls' +export * as domains from './domains/calls' +export * as runtimeConfigs from './runtime-configs/calls' +export * as vesting from './vesting/calls' +export * as messenger from './messenger/calls' +export * as transporter from './transporter/calls' +export * as sudo from './sudo/calls' +export * as rewards from './rewards/calls' diff --git a/indexers/consensus-squid/src/types/constants.ts b/indexers/consensus-squid/src/types/constants.ts new file mode 100644 index 000000000..c657c464d --- /dev/null +++ b/indexers/consensus-squid/src/types/constants.ts @@ -0,0 +1,11 @@ +export * as system from './system/constants' +export * as timestamp from './timestamp/constants' +export * as subspace from './subspace/constants' +export * as rewards from './rewards/constants' +export * as balances from './balances/constants' +export * as transactionFees from './transaction-fees/constants' +export * as transactionPayment from './transaction-payment/constants' +export * as utility from './utility/constants' +export * as domains from './domains/constants' +export * as vesting from './vesting/constants' +export * as messenger from './messenger/constants' diff --git a/indexers/consensus-squid/src/types/domains/calls.ts b/indexers/consensus-squid/src/types/domains/calls.ts new file mode 100644 index 000000000..3ecf1398b --- /dev/null +++ b/indexers/consensus-squid/src/types/domains/calls.ts @@ -0,0 +1,278 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }) + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }) + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }) + ), +} + +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }) + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }) + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }) + ), +} + +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), +} + +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }) + ), +} + +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }) + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }) + ), +} + +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }) + ), +} + +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }) + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }) + ), +} + +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }) + ), +} + +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }) + ), +} + +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }) + ), +} + +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/domains/constants.ts b/indexers/consensus-squid/src/types/domains/constants.ts new file mode 100644 index 000000000..a26b47666 --- /dev/null +++ b/indexers/consensus-squid/src/types/domains/constants.ts @@ -0,0 +1,213 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' + +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType( + 'Domains.ConfirmationDepthK', + sts.number() + ), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType( + 'Domains.DomainRuntimeUpgradeDelay', + sts.number() + ), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType( + 'Domains.BlockTreePruningDepth', + sts.number() + ), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockSize', + sts.number() + ), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockWeight', + v0.Weight + ), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxBundlesPerBlock', + sts.number() + ), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainNameLength', + sts.number() + ), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType( + 'Domains.DomainInstantiationDeposit', + sts.bigint() + ), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType( + 'Domains.InitialDomainTxRange', + sts.bigint() + ), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType( + 'Domains.DomainTxRangeAdjustmentInterval', + sts.bigint() + ), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType( + 'Domains.MinOperatorStake', + sts.bigint() + ), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType( + 'Domains.MinNominatorStake', + sts.bigint() + ), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType( + 'Domains.StakeWithdrawalLockingPeriod', + sts.number() + ), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType( + 'Domains.StakeEpochDuration', + sts.number() + ), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType( + 'Domains.TreasuryAccount', + v0.AccountId32 + ), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType( + 'Domains.MaxPendingStakingOperation', + sts.number() + ), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType( + 'Domains.MaxNominators', + sts.number() + ), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType( + 'Domains.SudoId', + v0.AccountId32 + ), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType( + 'Domains.PalletId', + v1.PalletId + ), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType( + 'Domains.BundleLongevity', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/domains/events.ts b/indexers/consensus-squid/src/types/domains/events.ts new file mode 100644 index 000000000..d6551e7d0 --- /dev/null +++ b/indexers/consensus-squid/src/types/domains/events.ts @@ -0,0 +1,250 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }) + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }) + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }) + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }) + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }) + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }) + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }) + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }) + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }) + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }) + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }) + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/domains/storage.ts b/indexers/consensus-squid/src/types/domains/storage.ts new file mode 100644 index 000000000..495ae0e03 --- /dev/null +++ b/indexers/consensus-squid/src/types/domains/storage.ts @@ -0,0 +1,1226 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, +} + +/** + * Bundles submitted successfully in current block. + */ +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, +} + +/** + * Fraud proofs submitted successfully in current block. + */ +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +} + +/** + * Stores the next runtime id. + */ +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +} + +/** + * Stores the next evm chain id. + */ +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const runtimeRegistry = { + v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, + v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> + getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> + getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const operatorIdOwner = { + v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, +} + +/** + * Indexes operator signing key against OperatorId. + */ +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise<(bigint | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> +} + +export const domainStakingSummary = { + v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, +} + +/** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, +} + +/** + * Share price for the operator pool at the end of Domain epoch. + */ +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, +} + +/** + * List of all deposits for given Operator. + */ +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> +} + +/** + * List of all deposits for given Operator. + */ +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, +} + +/** + * List of all withdrawals for a given operator. + */ +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> +} + +/** + * List of all withdrawals for a given operator. + */ +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, +} + +/** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise<(number | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, +} + +/** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, +} + +/** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +} + +/** + * Stores the next domain id. + */ +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise<(v0.DomainId | undefined)> +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, +} + +/** + * The domain registry + */ +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> +} + +/** + * The domain registry + */ +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> +} + +/** + * The domain registry + */ +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, +} + +/** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, +} + +/** + * The head receipt number of each domain + */ +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, +} + +/** + * The latest confirmed block number of each domain. + */ +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, +} + +/** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, +} + +/** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, +} + +/** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, +} + +/** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> +} + +/** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, +} + +/** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, +} + +/** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, +} + +/** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> +} + +export const domainTxRangeState = { + v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, +} + +/** + * Storage to hold all the domain's latest confirmed block. + */ +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, +} + +/** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, +} + +/** + * The highest slot of the bundle submitted by an operator + */ +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise<(bigint | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, +} + +/** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, +} + +/** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> +} + +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, +} + +/** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, +} + +/** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> + getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, +} + +/** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise<(number[] | undefined)> +} diff --git a/indexers/consensus-squid/src/types/events.ts b/indexers/consensus-squid/src/types/events.ts new file mode 100644 index 000000000..69e966580 --- /dev/null +++ b/indexers/consensus-squid/src/types/events.ts @@ -0,0 +1,13 @@ +export * as system from './system/events' +export * as subspace from './subspace/events' +export * as offencesSubspace from './offences-subspace/events' +export * as rewards from './rewards/events' +export * as balances from './balances/events' +export * as transactionFees from './transaction-fees/events' +export * as transactionPayment from './transaction-payment/events' +export * as utility from './utility/events' +export * as domains from './domains/events' +export * as vesting from './vesting/events' +export * as messenger from './messenger/events' +export * as transporter from './transporter/events' +export * as sudo from './sudo/events' diff --git a/indexers/consensus-squid/src/types/index.ts b/indexers/consensus-squid/src/types/index.ts new file mode 100644 index 000000000..a9093352d --- /dev/null +++ b/indexers/consensus-squid/src/types/index.ts @@ -0,0 +1,8 @@ +export * as v0 from './v0' +export * as v5 from './v5' +export * as v1 from './v1' +export * as v3 from './v3' +export * as events from './events' +export * as calls from './calls' +export * as constants from './constants' +export * as storage from './storage' diff --git a/indexers/consensus-squid/src/types/messenger/calls.ts b/indexers/consensus-squid/src/types/messenger/calls.ts new file mode 100644 index 000000000..03c0f7588 --- /dev/null +++ b/indexers/consensus-squid/src/types/messenger/calls.ts @@ -0,0 +1,146 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const initiateChannel = { + name: 'Messenger.initiate_channel', + /** + * See [`Pallet::initiate_channel`]. + */ + v0: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v0.ChainId, + params: v0.InitiateChannelParams, + }) + ), + /** + * A new Channel is initiated with a foreign chain. + * Next Channel ID is used to assign the new channel. + * Channel is set to initiated and do not accept or receive any messages. + */ + v5: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v5.ChainId, + params: v5.InitiateChannelParams, + }) + ), +} + +export const closeChannel = { + name: 'Messenger.close_channel', + /** + * See [`Pallet::close_channel`]. + */ + v0: new CallType( + 'Messenger.close_channel', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + }) + ), +} + +export const relayMessage = { + name: 'Messenger.relay_message', + /** + * See [`Pallet::relay_message`]. + */ + v0: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v0.CrossDomainMessage, + }) + ), + /** + * See [`Pallet::relay_message`]. + */ + v3: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v3.CrossDomainMessage, + }) + ), + /** + * Receives an Inbox message that needs to be validated and processed. + */ + v5: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v5.CrossDomainMessage, + }) + ), +} + +export const relayMessageResponse = { + name: 'Messenger.relay_message_response', + /** + * See [`Pallet::relay_message_response`]. + */ + v0: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v0.CrossDomainMessage, + }) + ), + /** + * See [`Pallet::relay_message_response`]. + */ + v3: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v3.CrossDomainMessage, + }) + ), + /** + * Receives a response from the dst_chain for a message in Outbox. + */ + v5: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v5.CrossDomainMessage, + }) + ), +} + +export const updateConsensusChainAllowlist = { + name: 'Messenger.update_consensus_chain_allowlist', + /** + * See [`Pallet::update_consensus_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_consensus_chain_allowlist', + sts.struct({ + update: v3.ChainAllowlistUpdate, + }) + ), +} + +export const initiateDomainUpdateChainAllowlist = { + name: 'Messenger.initiate_domain_update_chain_allowlist', + /** + * See [`Pallet::initiate_domain_update_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.initiate_domain_update_chain_allowlist', + sts.struct({ + domainId: v3.DomainId, + update: v3.ChainAllowlistUpdate, + }) + ), +} + +export const updateDomainAllowlist = { + name: 'Messenger.update_domain_allowlist', + /** + * See [`Pallet::update_domain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_domain_allowlist', + sts.struct({ + updates: v3.DomainAllowlistUpdates, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/messenger/constants.ts b/indexers/consensus-squid/src/types/messenger/constants.ts new file mode 100644 index 000000000..fecb47fda --- /dev/null +++ b/indexers/consensus-squid/src/types/messenger/constants.ts @@ -0,0 +1,23 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v5 from '../v5' + +export const channelReserveFee = { + /** + * Channel reserve fee to open a channel. + */ + v3: new ConstantType( + 'Messenger.ChannelReserveFee', + sts.bigint() + ), +} + +export const channelInitReservePortion = { + /** + * Portion of Channel reserve taken by the protocol + * if the channel is in init state and is requested to be closed. + */ + v5: new ConstantType( + 'Messenger.ChannelInitReservePortion', + v5.Perbill + ), +} diff --git a/indexers/consensus-squid/src/types/messenger/events.ts b/indexers/consensus-squid/src/types/messenger/events.ts new file mode 100644 index 000000000..c36e8bf2b --- /dev/null +++ b/indexers/consensus-squid/src/types/messenger/events.ts @@ -0,0 +1,150 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const channelInitiated = { + name: 'Messenger.ChannelInitiated', + /** + * Emits when a channel between two chains is initiated. + */ + v0: new EventType( + 'Messenger.ChannelInitiated', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), +} + +export const channelClosed = { + name: 'Messenger.ChannelClosed', + /** + * Emits when a channel between two chains is closed. + */ + v0: new EventType( + 'Messenger.ChannelClosed', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), +} + +export const channelOpen = { + name: 'Messenger.ChannelOpen', + /** + * Emits when a channel between two chain is open. + */ + v0: new EventType( + 'Messenger.ChannelOpen', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), +} + +export const outboxMessage = { + name: 'Messenger.OutboxMessage', + /** + * Emits when a new message is added to the outbox. + */ + v0: new EventType( + 'Messenger.OutboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), +} + +export const outboxMessageResponse = { + name: 'Messenger.OutboxMessageResponse', + /** + * Emits when a message response is available for Outbox message. + */ + v0: new EventType( + 'Messenger.OutboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), +} + +export const outboxMessageResult = { + name: 'Messenger.OutboxMessageResult', + /** + * Emits outbox message result. + */ + v0: new EventType( + 'Messenger.OutboxMessageResult', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: v0.OutboxMessageResult, + }) + ), +} + +export const inboxMessage = { + name: 'Messenger.InboxMessage', + /** + * Emits when a new inbox message is validated and added to Inbox. + */ + v0: new EventType( + 'Messenger.InboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), +} + +export const inboxMessageResponse = { + name: 'Messenger.InboxMessageResponse', + /** + * Emits when a message response is available for Inbox message. + */ + v0: new EventType( + 'Messenger.InboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/messenger/storage.ts b/indexers/consensus-squid/src/types/messenger/storage.ts new file mode 100644 index 000000000..cb857a76e --- /dev/null +++ b/indexers/consensus-squid/src/types/messenger/storage.ts @@ -0,0 +1,332 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const nextChannelId = { + /** + * Stores the next channel id for a foreign chain. + */ + v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, +} + +/** + * Stores the next channel id for a foreign chain. + */ +export interface NextChannelIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.ChainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> +} + +export const channels = { + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, +} + +/** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ +export interface ChannelsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> +} + +/** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ +export interface ChannelsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> + getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> + getKeys(block: Block): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> +} + +export const inbox = { + /** + * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` + * and `relay_message`. + */ + v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, +} + +/** + * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` + * and `relay_message`. + */ +export interface InboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Message | undefined)> +} + +export const inboxFee = { + /** + * A temporary storage of fees for executing an inbox message. + * The storage is cleared when the acknowledgement of inbox response is received + * from the src_chain. + */ + v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, +} + +/** + * A temporary storage of fees for executing an inbox message. + * The storage is cleared when the acknowledgement of inbox response is received + * from the src_chain. + */ +export interface InboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> +} + +export const outboxFee = { + /** + * A temporary storage of fees for executing an outbox message and its response from dst_chain. + * The storage is cleared when src_chain receives the response from dst_chain. + */ + v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, +} + +/** + * A temporary storage of fees for executing an outbox message and its response from dst_chain. + * The storage is cleared when src_chain receives the response from dst_chain. + */ +export interface OutboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> +} + +export const inboxResponses = { + /** + * Stores the message responses of the incoming processed responses. + * Used by the dst_chains to verify the message response. + */ + v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, +} + +/** + * Stores the message responses of the incoming processed responses. + * Used by the dst_chains to verify the message response. + */ +export interface InboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> +} + +export const counterForInboxResponses = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, +} + +/** + * Counter for the related counted storage map + */ +export interface CounterForInboxResponsesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const outbox = { + /** + * Stores the outgoing messages that are awaiting message responses from the dst_chain. + * Messages are processed in the outbox nonce order of chain's channel. + */ + v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, +} + +/** + * Stores the outgoing messages that are awaiting message responses from the dst_chain. + * Messages are processed in the outbox nonce order of chain's channel. + */ +export interface OutboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> +} + +export const counterForOutbox = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, +} + +/** + * Counter for the related counted storage map + */ +export interface CounterForOutboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const outboxResponses = { + /** + * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` + * and `relay_message_response`. + */ + v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, +} + +/** + * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` + * and `relay_message_response`. + */ +export interface OutboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Message | undefined)> +} + +export const blockMessages = { + /** + * A temporary storage to store all the messages to be relayed in this block. + * Will be cleared on the initialization on next block. + */ + v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, +} + +/** + * A temporary storage to store all the messages to be relayed in this block. + * Will be cleared on the initialization on next block. + */ +export interface BlockMessagesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.BlockMessages | undefined)> +} + +export const chainAllowlist = { + /** + * An allowlist of chains that can open channel with this chain. + */ + v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, +} + +/** + * An allowlist of chains that can open channel with this chain. + */ +export interface ChainAllowlistV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.ChainId[] + get(block: Block): Promise<(v3.ChainId[] | undefined)> +} + +export const domainChainAllowlistUpdate = { + /** + * A temporary storage to store any allowlist updates to domain. + * Will be cleared in the next block once the previous block has a domain bundle. + */ + v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, +} + +/** + * A temporary storage to store any allowlist updates to domain. + * Will be cleared in the next block once the previous block has a domain bundle. + */ +export interface DomainChainAllowlistUpdateV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> + getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> +} + +export const messageWeightTags = { + /** + * Storage to store the weight tags for all the outbox and inbox response messages. + */ + v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, +} + +/** + * Storage to store the weight tags for all the outbox and inbox response messages. + */ +export interface MessageWeightTagsV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.MessageWeightTags | undefined)> +} diff --git a/indexers/consensus-squid/src/types/mmr/storage.ts b/indexers/consensus-squid/src/types/mmr/storage.ts new file mode 100644 index 000000000..b4c49bbab --- /dev/null +++ b/indexers/consensus-squid/src/types/mmr/storage.ts @@ -0,0 +1,64 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const rootHash = { + /** + * Latest MMR Root hash. + */ + v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, +} + +/** + * Latest MMR Root hash. + */ +export interface RootHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> +} + +export const numberOfLeaves = { + /** + * Current size of the MMR (number of leaves). + */ + v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, +} + +/** + * Current size of the MMR (number of leaves). + */ +export interface NumberOfLeavesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const nodes = { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + */ + v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, +} + +/** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + */ +export interface NodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> +} diff --git a/indexers/consensus-squid/src/types/offences-subspace/events.ts b/indexers/consensus-squid/src/types/offences-subspace/events.ts new file mode 100644 index 000000000..71fb77783 --- /dev/null +++ b/indexers/consensus-squid/src/types/offences-subspace/events.ts @@ -0,0 +1,17 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' + +export const offence = { + name: 'OffencesSubspace.Offence', + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ + v0: new EventType( + 'OffencesSubspace.Offence', + sts.struct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/offences-subspace/storage.ts b/indexers/consensus-squid/src/types/offences-subspace/storage.ts new file mode 100644 index 000000000..bbc37e51f --- /dev/null +++ b/indexers/consensus-squid/src/types/offences-subspace/storage.ts @@ -0,0 +1,90 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const reports = { + /** + * The primary structure that holds all offence records keyed by report identifiers. + */ + v0: new StorageType('OffencesSubspace.Reports', 'Optional', [v0.H256], v0.OffenceDetails) as ReportsV0, +} + +/** + * The primary structure that holds all offence records keyed by report identifiers. + */ +export interface ReportsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.OffenceDetails | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> +} + +export const concurrentReportsIndex = { + /** + * A vector of reports of the same kind that happened at the same time slot. + */ + v0: new StorageType('OffencesSubspace.ConcurrentReportsIndex', 'Default', [sts.bytes(), sts.bytes()], sts.array(() => v0.H256)) as ConcurrentReportsIndexV0, +} + +/** + * A vector of reports of the same kind that happened at the same time slot. + */ +export interface ConcurrentReportsIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key1: Bytes, key2: Bytes): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[Bytes, Bytes][]> + getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key1: Bytes, key2: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> +} + +export const reportsByKindIndex = { + /** + * Enumerates all reports of a kind along with the time they happened. + * + * All reports are sorted by the time of offence. + * + * Note that the actual type of this mapping is `Vec`, this is because values of + * different types are not supported at the moment so we are doing the manual serialization. + */ + v0: new StorageType('OffencesSubspace.ReportsByKindIndex', 'Default', [sts.bytes()], sts.bytes()) as ReportsByKindIndexV0, +} + +/** + * Enumerates all reports of a kind along with the time they happened. + * + * All reports are sorted by the time of offence. + * + * Note that the actual type of this mapping is `Vec`, this is because values of + * different types are not supported at the moment so we are doing the manual serialization. + */ +export interface ReportsByKindIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: Bytes): Promise<(Bytes | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (Bytes | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> +} diff --git a/indexers/consensus-squid/src/types/rewards/calls.ts b/indexers/consensus-squid/src/types/rewards/calls.ts new file mode 100644 index 000000000..b8486afff --- /dev/null +++ b/indexers/consensus-squid/src/types/rewards/calls.ts @@ -0,0 +1,16 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v3 from '../v3' + +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/rewards/constants.ts b/indexers/consensus-squid/src/types/rewards/constants.ts new file mode 100644 index 000000000..e1004ecc1 --- /dev/null +++ b/indexers/consensus-squid/src/types/rewards/constants.ts @@ -0,0 +1,61 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType( + 'Rewards.BlockReward', + sts.bigint() + ), +} + +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType( + 'Rewards.VoteReward', + sts.bigint() + ), +} + +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType( + 'Rewards.AvgBlockspaceUsageNumBlocks', + sts.number() + ), +} + +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType( + 'Rewards.TransactionByteFee', + sts.bigint() + ), +} + +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType( + 'Rewards.MaxRewardPoints', + sts.number() + ), +} + +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]) + ), +} diff --git a/indexers/consensus-squid/src/types/rewards/events.ts b/indexers/consensus-squid/src/types/rewards/events.ts new file mode 100644 index 000000000..5b01a1694 --- /dev/null +++ b/indexers/consensus-squid/src/types/rewards/events.ts @@ -0,0 +1,30 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }) + ), +} + +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/rewards/storage.ts b/indexers/consensus-squid/src/types/rewards/storage.ts new file mode 100644 index 000000000..971093421 --- /dev/null +++ b/indexers/consensus-squid/src/types/rewards/storage.ts @@ -0,0 +1,82 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v3 from '../v3' + +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, +} + +/** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +} + +/** + * Whether rewards are enabled + */ +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, +} + +/** + * Tokens left to issue to farmers at any given time + */ +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, +} + +/** + * Block proposer subsidy parameters + */ +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +} + +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, +} + +/** + * Voter subsidy parameters + */ +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +} diff --git a/indexers/consensus-squid/src/types/runtime-configs/calls.ts b/indexers/consensus-squid/src/types/runtime-configs/calls.ts new file mode 100644 index 000000000..d5c4a64e3 --- /dev/null +++ b/indexers/consensus-squid/src/types/runtime-configs/calls.ts @@ -0,0 +1,53 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' + +export const setEnableDomains = { + name: 'RuntimeConfigs.set_enable_domains', + /** + * See [`Pallet::set_enable_domains`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_domains', + sts.struct({ + enableDomains: sts.boolean(), + }) + ), +} + +export const setEnableDynamicCostOfStorage = { + name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + /** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + sts.struct({ + enableDynamicCostOfStorage: sts.boolean(), + }) + ), +} + +export const setEnableBalanceTransfers = { + name: 'RuntimeConfigs.set_enable_balance_transfers', + /** + * See [`Pallet::set_enable_balance_transfers`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_balance_transfers', + sts.struct({ + enableBalanceTransfers: sts.boolean(), + }) + ), +} + +export const setEnableNonRootCalls = { + name: 'RuntimeConfigs.set_enable_non_root_calls', + /** + * See [`Pallet::set_enable_non_root_calls`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_non_root_calls', + sts.struct({ + enableNonRootCalls: sts.boolean(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/runtime-configs/storage.ts b/indexers/consensus-squid/src/types/runtime-configs/storage.ts new file mode 100644 index 000000000..7ef56beaa --- /dev/null +++ b/indexers/consensus-squid/src/types/runtime-configs/storage.ts @@ -0,0 +1,75 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' + +export const enableDomains = { + /** + * Whether to enable calls in pallet-domains. + */ + v0: new StorageType('RuntimeConfigs.EnableDomains', 'Default', [], sts.boolean()) as EnableDomainsV0, +} + +/** + * Whether to enable calls in pallet-domains. + */ +export interface EnableDomainsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const enableDynamicCostOfStorage = { + /** + * Whether to enable dynamic cost of storage. + */ + v0: new StorageType('RuntimeConfigs.EnableDynamicCostOfStorage', 'Default', [], sts.boolean()) as EnableDynamicCostOfStorageV0, +} + +/** + * Whether to enable dynamic cost of storage. + */ +export interface EnableDynamicCostOfStorageV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const enableBalanceTransfers = { + /** + * Whether to enable balances transfers. + */ + v0: new StorageType('RuntimeConfigs.EnableBalanceTransfers', 'Default', [], sts.boolean()) as EnableBalanceTransfersV0, +} + +/** + * Whether to enable balances transfers. + */ +export interface EnableBalanceTransfersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const enableNonRootCalls = { + /** + * Whether to enable calls from non-root account. + */ + v0: new StorageType('RuntimeConfigs.EnableNonRootCalls', 'Default', [], sts.boolean()) as EnableNonRootCallsV0, +} + +/** + * Whether to enable calls from non-root account. + */ +export interface EnableNonRootCallsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const confirmationDepthK = { + v0: new StorageType('RuntimeConfigs.ConfirmationDepthK', 'Default', [], sts.number()) as ConfirmationDepthKV0, +} + +export interface ConfirmationDepthKV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} diff --git a/indexers/consensus-squid/src/types/storage.ts b/indexers/consensus-squid/src/types/storage.ts new file mode 100644 index 000000000..3e27756f0 --- /dev/null +++ b/indexers/consensus-squid/src/types/storage.ts @@ -0,0 +1,16 @@ +export * as system from './system/storage' +export * as timestamp from './timestamp/storage' +export * as subspace from './subspace/storage' +export * as offencesSubspace from './offences-subspace/storage' +export * as balances from './balances/storage' +export * as transactionFees from './transaction-fees/storage' +export * as transactionPayment from './transaction-payment/storage' +export * as domains from './domains/storage' +export * as runtimeConfigs from './runtime-configs/storage' +export * as vesting from './vesting/storage' +export * as mmr from './mmr/storage' +export * as messenger from './messenger/storage' +export * as transporter from './transporter/storage' +export * as sudo from './sudo/storage' +export * as rewards from './rewards/storage' +export * as subspaceMmr from './subspace-mmr/storage' diff --git a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts new file mode 100644 index 000000000..f095c3c8a --- /dev/null +++ b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts @@ -0,0 +1,26 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v5 from '../v5' + +export const mmrRootHashes = { + /** + * Map of block numbers to mmr root hashes. + */ + v5: new StorageType('SubspaceMmr.MmrRootHashes', 'Optional', [sts.number()], v5.H256) as MmrRootHashesV5, +} + +/** + * Map of block numbers to mmr root hashes. + */ +export interface MmrRootHashesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> +} diff --git a/indexers/consensus-squid/src/types/subspace/calls.ts b/indexers/consensus-squid/src/types/subspace/calls.ts new file mode 100644 index 000000000..add70afae --- /dev/null +++ b/indexers/consensus-squid/src/types/subspace/calls.ts @@ -0,0 +1,79 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }) + ), +} + +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }) + ), +} + +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }) + ), +} + +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }) + ), +} + +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }) + ), +} + +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType( + 'Subspace.enable_authoring_by_anyone', + sts.unit() + ), +} diff --git a/indexers/consensus-squid/src/types/subspace/constants.ts b/indexers/consensus-squid/src/types/subspace/constants.ts new file mode 100644 index 000000000..555317b21 --- /dev/null +++ b/indexers/consensus-squid/src/types/subspace/constants.ts @@ -0,0 +1,154 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType( + 'Subspace.BlockAuthoringDelay', + v0.Slot + ), +} + +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionInterval', + sts.number() + ), +} + +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionLookbackDepth', + sts.number() + ), +} + +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionDelay', + v0.Slot + ), +} + +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType( + 'Subspace.EraDuration', + sts.number() + ), +} + +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType( + 'Subspace.InitialSolutionRange', + sts.bigint() + ), +} + +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType( + 'Subspace.ConfirmationDepthK', + sts.number() + ), +} + +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType( + 'Subspace.RecentSegments', + v0.HistorySize + ), +} + +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]) + ), +} + +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType( + 'Subspace.MinSectorLifetime', + v0.HistorySize + ), +} + +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType( + 'Subspace.ExpectedVotesPerBlock', + sts.number() + ), +} + +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType( + 'Subspace.MaxPiecesInSector', + sts.number() + ), +} + +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType( + 'Subspace.BlockSlotCount', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/subspace/events.ts b/indexers/consensus-squid/src/types/subspace/events.ts new file mode 100644 index 000000000..65427a471 --- /dev/null +++ b/indexers/consensus-squid/src/types/subspace/events.ts @@ -0,0 +1,31 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }) + ), +} + +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/subspace/storage.ts b/indexers/consensus-squid/src/types/subspace/storage.ts new file mode 100644 index 000000000..8c1220cc5 --- /dev/null +++ b/indexers/consensus-squid/src/types/subspace/storage.ts @@ -0,0 +1,390 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v3 from '../v3' + +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +} + +/** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +} + +/** + * Current slot number. + */ +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, +} + +/** + * Number of iterations for proof of time per slot + */ +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.NonZeroU32 | undefined)> +} + +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, +} + +/** + * Solution ranges used for challenges. + */ +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise<(v0.SolutionRanges | undefined)> +} + +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, +} + +/** + * Storage to check if the solution range is to be adjusted for next era + */ +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, +} + +/** + * Override solution range during next update + */ +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> +} + +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +} + +/** + * Slot at which current era started. + */ +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +} + +/** + * A set of blocked farmers keyed by their public key. + */ +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise<(null | undefined)> + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, +} + +/** + * Mapping from segment index to corresponding segment commitment of contained records. + */ +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, +} + +/** + * Counter for the related counted storage map + */ +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, +} + +/** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, +} + +/** + * Storage of previous vote verification data, updated on each block during finalization. + */ +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.VoteVerificationData | undefined)> +} + +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, +} + +/** + * Parent block author information. + */ +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> +} + +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +} + +/** + * Enable rewards since specified block number. + */ +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, +} + +/** + * Enable rewards when solution range is below this threshold. + */ +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(bigint | undefined)> +} + +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, +} + +/** + * Temporary value (cleared at block finalization) with block author information. + */ +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, +} + +/** + * Voters in the parent block (set at the end of the block with current values). + */ +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, +} + +/** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, +} + +/** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> +} + +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, +} + +/** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Randomness | undefined)> +} + +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, +} + +/** + * Allow block authoring by anyone or just root. + */ +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, +} + +/** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Public | undefined)> +} + +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, +} + +/** + * Bounded mapping from block number to slot + */ +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<([number, v3.Slot][] | undefined)> +} diff --git a/indexers/consensus-squid/src/types/sudo/calls.ts b/indexers/consensus-squid/src/types/sudo/calls.ts new file mode 100644 index 000000000..dd08aa2e5 --- /dev/null +++ b/indexers/consensus-squid/src/types/sudo/calls.ts @@ -0,0 +1,164 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const sudo = { + name: 'Sudo.sudo', + /** + * See [`Pallet::sudo`]. + */ + v0: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v0.Call, + }) + ), + /** + * See [`Pallet::sudo`]. + */ + v1: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v1.Call, + }) + ), + /** + * See [`Pallet::sudo`]. + */ + v3: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v3.Call, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + */ + v5: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v5.Call, + }) + ), +} + +export const sudoUncheckedWeight = { + name: 'Sudo.sudo_unchecked_weight', + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v0: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }) + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v1: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }) + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v3: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }) + ), +} + +export const setKey = { + name: 'Sudo.set_key', + /** + * See [`Pallet::set_key`]. + */ + v0: new CallType( + 'Sudo.set_key', + sts.struct({ + new: v0.MultiAddress, + }) + ), +} + +export const sudoAs = { + name: 'Sudo.sudo_as', + /** + * See [`Pallet::sudo_as`]. + */ + v0: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v0.MultiAddress, + call: v0.Call, + }) + ), + /** + * See [`Pallet::sudo_as`]. + */ + v1: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v1.MultiAddress, + call: v1.Call, + }) + ), + /** + * See [`Pallet::sudo_as`]. + */ + v3: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v3.MultiAddress, + call: v3.Call, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v5.MultiAddress, + call: v5.Call, + }) + ), +} + +export const removeKey = { + name: 'Sudo.remove_key', + /** + * See [`Pallet::remove_key`]. + */ + v0: new CallType( + 'Sudo.remove_key', + sts.unit() + ), +} diff --git a/indexers/consensus-squid/src/types/sudo/events.ts b/indexers/consensus-squid/src/types/sudo/events.ts new file mode 100644 index 000000000..2e134d96a --- /dev/null +++ b/indexers/consensus-squid/src/types/sudo/events.ts @@ -0,0 +1,65 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const sudid = { + name: 'Sudo.Sudid', + /** + * A sudo call just took place. + */ + v0: new EventType( + 'Sudo.Sudid', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), +} + +export const keyChanged = { + name: 'Sudo.KeyChanged', + /** + * The sudo key has been updated. + */ + v0: new EventType( + 'Sudo.KeyChanged', + sts.struct({ + /** + * The old sudo key (if one was previously set). + */ + old: sts.option(() => v0.AccountId32), + /** + * The new sudo key (if one was set). + */ + new: v0.AccountId32, + }) + ), +} + +export const keyRemoved = { + name: 'Sudo.KeyRemoved', + /** + * The key was permanently removed. + */ + v0: new EventType( + 'Sudo.KeyRemoved', + sts.unit() + ), +} + +export const sudoAsDone = { + name: 'Sudo.SudoAsDone', + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ + v0: new EventType( + 'Sudo.SudoAsDone', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/sudo/storage.ts b/indexers/consensus-squid/src/types/sudo/storage.ts new file mode 100644 index 000000000..21712c680 --- /dev/null +++ b/indexers/consensus-squid/src/types/sudo/storage.ts @@ -0,0 +1,17 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const key = { + /** + * The `AccountId` of the sudo key. + */ + v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, +} + +/** + * The `AccountId` of the sudo key. + */ +export interface KeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> +} diff --git a/indexers/consensus-squid/src/types/support.ts b/indexers/consensus-squid/src/types/support.ts new file mode 100644 index 000000000..456dfc2fb --- /dev/null +++ b/indexers/consensus-squid/src/types/support.ts @@ -0,0 +1,142 @@ +import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' +import * as sts from '@subsquid/substrate-runtime/lib/sts' +import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' +import assert from 'assert' + + +export {sts, Bytes, BitSequence, Option, Result} + + +export interface RuntimeCtx { + _runtime: Runtime +} + + +export interface Block extends RuntimeCtx { + hash: Bytes + height: number +} + + +interface Event { + block: RuntimeCtx + name: QualifiedName + args: unknown +} + + +interface Call { + block: RuntimeCtx + name: QualifiedName + args: unknown +} + + +export class EventType { + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } +} + + +export class CallType { + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } +} + + +export class ConstantType { + constructor(private name: QualifiedName, private type: T) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } +} + + +export class StorageType { + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } +} diff --git a/indexers/consensus-squid/src/types/system/calls.ts b/indexers/consensus-squid/src/types/system/calls.ts new file mode 100644 index 000000000..24f23464e --- /dev/null +++ b/indexers/consensus-squid/src/types/system/calls.ts @@ -0,0 +1,146 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }) + ), +} + +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }) + ), +} + +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }) + ), +} + +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }) + ), +} + +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }) + ), +} + +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }) + ), +} + +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }) + ), +} + +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }) + ), +} + +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }) + ), +} + +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }) + ), +} + +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/system/constants.ts b/indexers/consensus-squid/src/types/system/constants.ts new file mode 100644 index 000000000..653ab1df2 --- /dev/null +++ b/indexers/consensus-squid/src/types/system/constants.ts @@ -0,0 +1,66 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType( + 'System.BlockWeights', + v0.BlockWeights + ), +} + +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType( + 'System.BlockLength', + v0.BlockLength + ), +} + +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType( + 'System.BlockHashCount', + sts.number() + ), +} + +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType( + 'System.DbWeight', + v0.RuntimeDbWeight + ), +} + +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType( + 'System.Version', + v0.RuntimeVersion + ), +} + +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType( + 'System.SS58Prefix', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/system/events.ts b/indexers/consensus-squid/src/types/system/events.ts new file mode 100644 index 000000000..2c8c5731b --- /dev/null +++ b/indexers/consensus-squid/src/types/system/events.ts @@ -0,0 +1,94 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }) + ), +} + +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }) + ), +} + +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType( + 'System.CodeUpdated', + sts.unit() + ), +} + +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), +} + +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), +} + +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }) + ), +} + +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/system/storage.ts b/indexers/consensus-squid/src/types/system/storage.ts new file mode 100644 index 000000000..9f776b387 --- /dev/null +++ b/indexers/consensus-squid/src/types/system/storage.ts @@ -0,0 +1,405 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +} + +/** + * The full account information for a particular account ID. + */ +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +} + +/** + * Total extrinsics count for the current block. + */ +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +} + +/** + * The current weight for the block. + */ +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise<(v0.PerDispatchClass | undefined)> +} + +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, +} + +/** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +} + +/** + * Map of block numbers to block hashes. + */ +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, +} + +/** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise<(Bytes | undefined)> + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +} + +/** + * The current block number being processed. Set by `execute_block`. + */ +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +} + +/** + * Hash of the previous block. + */ +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> +} + +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +} + +/** + * Digest of the current block, also part of the block header. + */ +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise<(v0.Digest | undefined)> +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise<(v0.EventRecord[] | undefined)> +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise<(v1.EventRecord[] | undefined)> +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise<(v5.EventRecord[] | undefined)> +} + +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +} + +/** + * The number of events in the `Events` list. + */ +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, +} + +/** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, +} + +/** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> +} + +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, +} + +/** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, +} + +/** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +} + +/** + * The execution phase of the block. + */ +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Phase | undefined)> +} + +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, +} + +/** + * `Some` if a code upgrade has been authorized. + */ +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> +} + +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, +} + +/** + * Whether all inherents have been applied. + */ +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} diff --git a/indexers/consensus-squid/src/types/timestamp/calls.ts b/indexers/consensus-squid/src/types/timestamp/calls.ts new file mode 100644 index 000000000..60a975536 --- /dev/null +++ b/indexers/consensus-squid/src/types/timestamp/calls.ts @@ -0,0 +1,14 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' + +export const set = { + name: 'Timestamp.set', + /** + * See [`Pallet::set`]. + */ + v0: new CallType( + 'Timestamp.set', + sts.struct({ + now: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/timestamp/constants.ts b/indexers/consensus-squid/src/types/timestamp/constants.ts new file mode 100644 index 000000000..09884d72c --- /dev/null +++ b/indexers/consensus-squid/src/types/timestamp/constants.ts @@ -0,0 +1,16 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const minimumPeriod = { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + */ + v0: new ConstantType( + 'Timestamp.MinimumPeriod', + sts.bigint() + ), +} diff --git a/indexers/consensus-squid/src/types/timestamp/storage.ts b/indexers/consensus-squid/src/types/timestamp/storage.ts new file mode 100644 index 000000000..1bf820c09 --- /dev/null +++ b/indexers/consensus-squid/src/types/timestamp/storage.ts @@ -0,0 +1,39 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' + +export const now = { + /** + * The current time for the current block. + */ + v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, +} + +/** + * The current time for the current block. + */ +export interface NowV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const didUpdate = { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, +} + +/** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + */ +export interface DidUpdateV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} diff --git a/indexers/consensus-squid/src/types/transaction-fees/constants.ts b/indexers/consensus-squid/src/types/transaction-fees/constants.ts new file mode 100644 index 000000000..60de86b39 --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-fees/constants.ts @@ -0,0 +1,43 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType( + 'TransactionFees.MinReplicationFactor', + sts.number() + ), +} + +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType( + 'TransactionFees.CreditSupply', + sts.bigint() + ), +} + +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType( + 'TransactionFees.TotalSpacePledged', + sts.bigint() + ), +} + +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType( + 'TransactionFees.BlockchainHistorySize', + sts.bigint() + ), +} diff --git a/indexers/consensus-squid/src/types/transaction-fees/events.ts b/indexers/consensus-squid/src/types/transaction-fees/events.ts new file mode 100644 index 000000000..4726ccd18 --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-fees/events.ts @@ -0,0 +1,54 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }) + ), +} + +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/transaction-fees/storage.ts b/indexers/consensus-squid/src/types/transaction-fees/storage.ts new file mode 100644 index 000000000..34c003453 --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-fees/storage.ts @@ -0,0 +1,86 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, +} + +/** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> +} + +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, +} + +/** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, +} + +/** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> +} + +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, +} + +/** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CollectedFees | undefined)> +} diff --git a/indexers/consensus-squid/src/types/transaction-payment/constants.ts b/indexers/consensus-squid/src/types/transaction-payment/constants.ts new file mode 100644 index 000000000..92856764a --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-payment/constants.ts @@ -0,0 +1,31 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType( + 'TransactionPayment.OperationalFeeMultiplier', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/transaction-payment/events.ts b/indexers/consensus-squid/src/types/transaction-payment/events.ts new file mode 100644 index 000000000..f2e82a56e --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-payment/events.ts @@ -0,0 +1,18 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/transaction-payment/storage.ts b/indexers/consensus-squid/src/types/transaction-payment/storage.ts new file mode 100644 index 000000000..1fe2ddae7 --- /dev/null +++ b/indexers/consensus-squid/src/types/transaction-payment/storage.ts @@ -0,0 +1,22 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const nextFeeMultiplier = { + v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, +} + +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise<(v0.FixedU128 | undefined)> +} + +export const storageVersion = { + v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, +} + +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise<(v0.Releases | undefined)> +} diff --git a/indexers/consensus-squid/src/types/transporter/calls.ts b/indexers/consensus-squid/src/types/transporter/calls.ts new file mode 100644 index 000000000..a3b19e8e7 --- /dev/null +++ b/indexers/consensus-squid/src/types/transporter/calls.ts @@ -0,0 +1,16 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const transfer = { + name: 'Transporter.transfer', + /** + * See [`Pallet::transfer`]. + */ + v0: new CallType( + 'Transporter.transfer', + sts.struct({ + dstLocation: v0.Location, + amount: sts.bigint(), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/transporter/events.ts b/indexers/consensus-squid/src/types/transporter/events.ts new file mode 100644 index 000000000..7d966a266 --- /dev/null +++ b/indexers/consensus-squid/src/types/transporter/events.ts @@ -0,0 +1,86 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const outgoingTransferInitiated = { + name: 'Transporter.OutgoingTransferInitiated', + /** + * Emits when there is a new outgoing transfer. + */ + v0: new EventType( + 'Transporter.OutgoingTransferInitiated', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), +} + +export const outgoingTransferFailed = { + name: 'Transporter.OutgoingTransferFailed', + /** + * Emits when a given outgoing transfer was failed on dst_chain. + */ + v0: new EventType( + 'Transporter.OutgoingTransferFailed', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + /** + * Error from dst_chain endpoint. + */ + err: v0.DispatchError, + }) + ), +} + +export const outgoingTransferSuccessful = { + name: 'Transporter.OutgoingTransferSuccessful', + /** + * Emits when a given outgoing transfer was successful. + */ + v0: new EventType( + 'Transporter.OutgoingTransferSuccessful', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), +} + +export const incomingTransferSuccessful = { + name: 'Transporter.IncomingTransferSuccessful', + /** + * Emits when a given incoming transfer was successfully processed. + */ + v0: new EventType( + 'Transporter.IncomingTransferSuccessful', + sts.struct({ + /** + * Source chain the transfer is coming from. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/transporter/storage.ts b/indexers/consensus-squid/src/types/transporter/storage.ts new file mode 100644 index 000000000..d96aabc69 --- /dev/null +++ b/indexers/consensus-squid/src/types/transporter/storage.ts @@ -0,0 +1,132 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' + +export const outgoingTransfers = { + /** + * All the outgoing transfers on this execution environment. + */ + v0: new StorageType('Transporter.OutgoingTransfers', 'Optional', [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], v0.Transfer) as OutgoingTransfersV0, +} + +/** + * All the outgoing transfers on this execution environment. + */ +export interface OutgoingTransfersV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<(v0.Transfer | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(v0.Transfer | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairs(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> +} + +export const domainBalances = { + /** + * Domain balances. + */ + v1: new StorageType('Transporter.DomainBalances', 'Default', [v1.DomainId], sts.bigint()) as DomainBalancesV1, +} + +/** + * Domain balances. + */ +export interface DomainBalancesV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v1.DomainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> +} + +export const chainTransfers = { + /** + * A temporary storage that tracks total transfers from this chain. + * Clears on on_initialize for every block. + */ + v1: new StorageType('Transporter.ChainTransfers', 'Default', [], v1.Transfers) as ChainTransfersV1, +} + +/** + * A temporary storage that tracks total transfers from this chain. + * Clears on on_initialize for every block. + */ +export interface ChainTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.Transfers + get(block: Block): Promise<(v1.Transfers | undefined)> +} + +export const unconfirmedTransfers = { + /** + * Storage to track unconfirmed transfers between different chains. + */ + v1: new StorageType('Transporter.UnconfirmedTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as UnconfirmedTransfersV1, +} + +/** + * Storage to track unconfirmed transfers between different chains. + */ +export interface UnconfirmedTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> +} + +export const cancelledTransfers = { + /** + * Storage to track cancelled transfers between different chains. + */ + v1: new StorageType('Transporter.CancelledTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as CancelledTransfersV1, +} + +/** + * Storage to track cancelled transfers between different chains. + */ +export interface CancelledTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> +} diff --git a/indexers/consensus-squid/src/types/utility/calls.ts b/indexers/consensus-squid/src/types/utility/calls.ts new file mode 100644 index 000000000..d40533708 --- /dev/null +++ b/indexers/consensus-squid/src/types/utility/calls.ts @@ -0,0 +1,320 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const batch = { + name: 'Utility.batch', + /** + * See [`Pallet::batch`]. + */ + v0: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::batch`]. + */ + v1: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::batch`]. + */ + v3: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + */ + v5: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), +} + +export const asDerivative = { + name: 'Utility.as_derivative', + /** + * See [`Pallet::as_derivative`]. + */ + v0: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v0.Call, + }) + ), + /** + * See [`Pallet::as_derivative`]. + */ + v1: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v1.Call, + }) + ), + /** + * See [`Pallet::as_derivative`]. + */ + v3: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v3.Call, + }) + ), + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v5.Call, + }) + ), +} + +export const batchAll = { + name: 'Utility.batch_all', + /** + * See [`Pallet::batch_all`]. + */ + v0: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::batch_all`]. + */ + v1: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::batch_all`]. + */ + v3: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), +} + +export const dispatchAs = { + name: 'Utility.dispatch_as', + /** + * See [`Pallet::dispatch_as`]. + */ + v0: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v0.OriginCaller, + call: v0.Call, + }) + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v1: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v1.OriginCaller, + call: v1.Call, + }) + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v3: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v3.OriginCaller, + call: v3.Call, + }) + ), + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + */ + v5: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v5.OriginCaller, + call: v5.Call, + }) + ), +} + +export const forceBatch = { + name: 'Utility.force_batch', + /** + * See [`Pallet::force_batch`]. + */ + v0: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::force_batch`]. + */ + v1: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::force_batch`]. + */ + v3: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), +} + +export const withWeight = { + name: 'Utility.with_weight', + /** + * See [`Pallet::with_weight`]. + */ + v0: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }) + ), + /** + * See [`Pallet::with_weight`]. + */ + v1: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }) + ), + /** + * See [`Pallet::with_weight`]. + */ + v3: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }) + ), + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + */ + v5: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/utility/constants.ts b/indexers/consensus-squid/src/types/utility/constants.ts new file mode 100644 index 000000000..e82480598 --- /dev/null +++ b/indexers/consensus-squid/src/types/utility/constants.ts @@ -0,0 +1,11 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const batchedCallsLimit = { + /** + * The limit on the number of batched calls. + */ + v0: new ConstantType( + 'Utility.batched_calls_limit', + sts.number() + ), +} diff --git a/indexers/consensus-squid/src/types/utility/events.ts b/indexers/consensus-squid/src/types/utility/events.ts new file mode 100644 index 000000000..1652db0da --- /dev/null +++ b/indexers/consensus-squid/src/types/utility/events.ts @@ -0,0 +1,76 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const batchInterrupted = { + name: 'Utility.BatchInterrupted', + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ + v0: new EventType( + 'Utility.BatchInterrupted', + sts.struct({ + index: sts.number(), + error: v0.DispatchError, + }) + ), +} + +export const batchCompleted = { + name: 'Utility.BatchCompleted', + /** + * Batch of dispatches completed fully with no error. + */ + v0: new EventType( + 'Utility.BatchCompleted', + sts.unit() + ), +} + +export const batchCompletedWithErrors = { + name: 'Utility.BatchCompletedWithErrors', + /** + * Batch of dispatches completed but has errors. + */ + v0: new EventType( + 'Utility.BatchCompletedWithErrors', + sts.unit() + ), +} + +export const itemCompleted = { + name: 'Utility.ItemCompleted', + /** + * A single item within a Batch of dispatches has completed with no error. + */ + v0: new EventType( + 'Utility.ItemCompleted', + sts.unit() + ), +} + +export const itemFailed = { + name: 'Utility.ItemFailed', + /** + * A single item within a Batch of dispatches has completed with error. + */ + v0: new EventType( + 'Utility.ItemFailed', + sts.struct({ + error: v0.DispatchError, + }) + ), +} + +export const dispatchedAs = { + name: 'Utility.DispatchedAs', + /** + * A call was dispatched. + */ + v0: new EventType( + 'Utility.DispatchedAs', + sts.struct({ + result: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), +} diff --git a/indexers/consensus-squid/src/types/v0.ts b/indexers/consensus-squid/src/types/v0.ts new file mode 100644 index 000000000..14718c7e9 --- /dev/null +++ b/indexers/consensus-squid/src/types/v0.ts @@ -0,0 +1,4642 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export const HistorySize = sts.bigint() + +export const RuntimeVersion: sts.Type = sts.struct(() => { + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } +}) + +export interface RuntimeVersion { + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number +} + +export const RuntimeDbWeight: sts.Type = sts.struct(() => { + return { + read: sts.bigint(), + write: sts.bigint(), + } +}) + +export interface RuntimeDbWeight { + read: bigint + write: bigint +} + +export const BlockLength: sts.Type = sts.struct(() => { + return { + max: Type_85, + } +}) + +export const Type_85: sts.Type = sts.struct(() => { + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } +}) + +export interface Type_85 { + normal: number + operational: number + mandatory: number +} + +export interface BlockLength { + max: Type_85 +} + +export const BlockWeights: sts.Type = sts.struct(() => { + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } +}) + +export const Type_81: sts.Type = sts.struct(() => { + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } +}) + +export const WeightsPerClass: sts.Type = sts.struct(() => { + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } +}) + +export interface WeightsPerClass { + baseExtrinsic: Weight + maxExtrinsic?: (Weight | undefined) + maxTotal?: (Weight | undefined) + reserved?: (Weight | undefined) +} + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export interface Type_81 { + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass +} + +export interface BlockWeights { + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 +} + +export interface Transfer { + amount: bigint + sender: Location + receiver: Location +} + +export interface Location { + chainId: ChainId + accountId: MultiAccountId +} + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export const Transfer: sts.Type = sts.struct(() => { + return { + amount: sts.bigint(), + sender: Location, + receiver: Location, + } +}) + +export interface BlockMessages { + outbox: [ChainId, [bigint, bigint], MessageWeightTag][] + inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] +} + +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen + +export interface MessageWeightTag_EndpointRequest { + __kind: 'EndpointRequest' + value: Endpoint +} + +export interface MessageWeightTag_EndpointResponse { + __kind: 'EndpointResponse' + value: Endpoint +} + +export interface MessageWeightTag_None { + __kind: 'None' +} + +export interface MessageWeightTag_ProtocolChannelClose { + __kind: 'ProtocolChannelClose' +} + +export interface MessageWeightTag_ProtocolChannelOpen { + __kind: 'ProtocolChannelOpen' +} + +export type Endpoint = Endpoint_Id + +export interface Endpoint_Id { + __kind: 'Id' + value: bigint +} + +export const BlockMessages: sts.Type = sts.struct(() => { + return { + outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), + inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), + } +}) + +export const MessageWeightTag: sts.Type = sts.closedEnum(() => { + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } +}) + +export const Endpoint: sts.Type = sts.closedEnum(() => { + return { + Id: sts.bigint(), + } +}) + +export interface Message { + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + payload: VersionedPayload + lastDeliveredMessageResponseNonce?: (bigint | undefined) +} + +export type VersionedPayload = VersionedPayload_V0 + +export interface VersionedPayload_V0 { + __kind: 'V0' + value: Payload +} + +export type Payload = Payload_Endpoint | Payload_Protocol + +export interface Payload_Endpoint { + __kind: 'Endpoint' + value: Type_294 +} + +export interface Payload_Protocol { + __kind: 'Protocol' + value: RequestResponse +} + +export type RequestResponse = RequestResponse_Request | RequestResponse_Response + +export interface RequestResponse_Request { + __kind: 'Request' + value: ProtocolMessageRequest +} + +export interface RequestResponse_Response { + __kind: 'Response' + value: Result +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen + +export interface ProtocolMessageRequest_ChannelClose { + __kind: 'ChannelClose' +} + +export interface ProtocolMessageRequest_ChannelOpen { + __kind: 'ChannelOpen' + value: InitiateChannelParams +} + +export interface InitiateChannelParams { + maxOutgoingMessages: number + feeModel: FeeModel +} + +export interface FeeModel { + relayFee: bigint +} + +export type Type_294 = Type_294_Request | Type_294_Response + +export interface Type_294_Request { + __kind: 'Request' + value: EndpointRequest +} + +export interface Type_294_Response { + __kind: 'Response' + value: Result +} + +export interface EndpointRequest { + srcEndpoint: Endpoint + dstEndpoint: Endpoint + payload: Bytes +} + +export const Message: sts.Type = sts.struct(() => { + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + payload: VersionedPayload, + lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), + } +}) + +export const VersionedPayload: sts.Type = sts.closedEnum(() => { + return { + V0: Payload, + } +}) + +export const Payload: sts.Type = sts.closedEnum(() => { + return { + Endpoint: Type_294, + Protocol: RequestResponse, + } +}) + +export const RequestResponse: sts.Type = sts.closedEnum(() => { + return { + Request: ProtocolMessageRequest, + Response: sts.result(() => sts.unit(), () => DispatchError), + } +}) + +export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { + return { + ChannelClose: sts.unit(), + ChannelOpen: InitiateChannelParams, + } +}) + +export const Type_294: sts.Type = sts.closedEnum(() => { + return { + Request: EndpointRequest, + Response: sts.result(() => sts.bytes(), () => DispatchError), + } +}) + +export const EndpointRequest: sts.Type = sts.struct(() => { + return { + srcEndpoint: Endpoint, + dstEndpoint: Endpoint, + payload: sts.bytes(), + } +}) + +export interface Channel { + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: (bigint | undefined) + maxOutgoingMessages: number + fee: FeeModel +} + +export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open + +export interface ChannelState_Closed { + __kind: 'Closed' +} + +export interface ChannelState_Initiated { + __kind: 'Initiated' +} + +export interface ChannelState_Open { + __kind: 'Open' +} + +export const Channel: sts.Type = sts.struct(() => { + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + } +}) + +export const FeeModel: sts.Type = sts.struct(() => { + return { + relayFee: sts.bigint(), + } +}) + +export const ChannelState: sts.Type = sts.closedEnum(() => { + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } +}) + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +export interface TxRangeState { + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint +} + +export type U256 = bigint + +export const TxRangeState: sts.Type = sts.struct(() => { + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } +}) + +export const U256 = sts.bigint() + +export interface ElectionVerificationParams { + operators: [bigint, bigint][] + totalDomainStake: bigint +} + +export const ElectionVerificationParams: sts.Type = sts.struct(() => { + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } +}) + +export interface BundleDigest { + headerHash: H256 + extrinsicsRoot: H256 +} + +export const BundleDigest: sts.Type = sts.struct(() => { + return { + headerHash: H256, + extrinsicsRoot: H256, + } +}) + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidXDM { + __kind: 'InvalidXDM' + value: number +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export interface Withdrawal { + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) +} + +export const Withdrawal: sts.Type = sts.struct(() => { + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), + } +}) + +export interface Deposit { + known: KnownDeposit + pending?: (PendingDeposit | undefined) +} + +export interface PendingDeposit { + effectiveDomainEpoch: DomainEpoch + amount: bigint +} + +export interface KnownDeposit { + shares: bigint +} + +export const Deposit: sts.Type = sts.struct(() => { + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } +}) + +export const PendingDeposit: sts.Type = sts.struct(() => { + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } +}) + +export const KnownDeposit: sts.Type = sts.struct(() => { + return { + shares: sts.bigint(), + } +}) + +export type DomainEpoch = [DomainId, number] + +export type SharePrice = number + +export const SharePrice = sts.number() + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const Percent = sts.number() + +export interface StakingSummary { + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] +} + +export const StakingSummary: sts.Type = sts.struct(() => { + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } +}) + +export interface ScheduledRuntimeUpgrade { + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 +} + +export interface RawGenesis { + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] +} + +export type StorageData = Bytes + +export type StorageKey = Bytes + +export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } +}) + +export const RawGenesis: sts.Type = sts.struct(() => { + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } +}) + +export const StorageData = sts.bytes() + +export const StorageKey = sts.bytes() + +export interface RuntimeObject { + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number +} + +export type RuntimeType = RuntimeType_Evm + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +export const RuntimeObject: sts.Type = sts.struct(() => { + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } +}) + +export type DomainId = number + +export type Releases = Releases_V1Ancient | Releases_V2 + +export interface Releases_V1Ancient { + __kind: 'V1Ancient' +} + +export interface Releases_V2 { + __kind: 'V2' +} + +export const Releases: sts.Type = sts.closedEnum(() => { + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } +}) + +export type FixedU128 = bigint + +export const FixedU128 = sts.bigint() + +export interface CollectedFees { + storage: bigint + compute: bigint + tips: bigint +} + +export const CollectedFees: sts.Type = sts.struct(() => { + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } +}) + +export interface BlockTransactionByteFee { + current: bigint + next: bigint +} + +export const BlockTransactionByteFee: sts.Type = sts.struct(() => { + return { + current: sts.bigint(), + next: sts.bigint(), + } +}) + +export interface Type_152 { + amount: bigint +} + +export const Type_152: sts.Type = sts.struct(() => { + return { + amount: sts.bigint(), + } +}) + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export interface ReserveData { + id: Bytes + amount: bigint +} + +export const ReserveData: sts.Type = sts.struct(() => { + return { + id: sts.bytes(), + amount: sts.bigint(), + } +}) + +export interface BalanceLock { + id: Bytes + amount: bigint + reasons: Reasons +} + +export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc + +export interface Reasons_All { + __kind: 'All' +} + +export interface Reasons_Fee { + __kind: 'Fee' +} + +export interface Reasons_Misc { + __kind: 'Misc' +} + +export const BalanceLock: sts.Type = sts.struct(() => { + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } +}) + +export const Reasons: sts.Type = sts.closedEnum(() => { + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } +}) + +export interface AccountData { + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags +} + +export type ExtraFlags = bigint + +export const AccountData: sts.Type = sts.struct(() => { + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } +}) + +export const ExtraFlags = sts.bigint() + +export interface OffenceDetails { + offender: Public +} + +export const OffenceDetails: sts.Type = sts.struct(() => { + return { + offender: Public, + } +}) + +export type Randomness = Bytes + +export const Randomness = sts.bytes() + +export interface PotEntropyValue { + targetSlot?: (Slot | undefined) + entropy: Bytes +} + +export const PotEntropyValue: sts.Type = sts.struct(() => { + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } +}) + +export type Signature = Bytes + +export const Signature = sts.bytes() + +export interface Scalar { + inner: Bytes +} + +export type PieceOffset = number + +export const Scalar: sts.Type = sts.struct(() => { + return { + inner: sts.bytes(), + } +}) + +export const PieceOffset = sts.number() + +export interface VoteVerificationData { + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot +} + +export const VoteVerificationData: sts.Type = sts.struct(() => { + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } +}) + +export type SegmentIndex = bigint + +export type SegmentCommitment = Bytes + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export type Public = Bytes + +export interface SolutionRangeOverride { + solutionRange: bigint + votingSolutionRange: bigint +} + +export const SolutionRangeOverride: sts.Type = sts.struct(() => { + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } +}) + +export interface SolutionRanges { + current: bigint + next?: (bigint | undefined) + votingCurrent: bigint + votingNext?: (bigint | undefined) +} + +export const SolutionRanges: sts.Type = sts.struct(() => { + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } +}) + +export type NonZeroU32 = number + +export const NonZeroU32 = sts.number() + +export type Slot = bigint + +export const Slot = sts.bigint() + +export interface CodeUpgradeAuthorization { + codeHash: H256 + checkVersion: boolean +} + +export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { + return { + codeHash: H256, + checkVersion: sts.boolean(), + } +}) + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export interface LastRuntimeUpgradeInfo { + specVersion: number + specName: string +} + +export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { + return { + specVersion: sts.number(), + specName: sts.string(), + } +}) + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author. + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter. + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_BundleEquivocation { + __kind: 'BundleEquivocation' + value: Slot +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export interface Digest { + logs: DigestItem[] +} + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + +export interface DigestItem_Consensus { + __kind: 'Consensus' + value: [Bytes, Bytes] +} + +export interface DigestItem_Other { + __kind: 'Other' + value: Bytes +} + +export interface DigestItem_PreRuntime { + __kind: 'PreRuntime' + value: [Bytes, Bytes] +} + +export interface DigestItem_RuntimeEnvironmentUpdated { + __kind: 'RuntimeEnvironmentUpdated' +} + +export interface DigestItem_Seal { + __kind: 'Seal' + value: [Bytes, Bytes] +} + +export const Digest: sts.Type = sts.struct(() => { + return { + logs: sts.array(() => DigestItem), + } +}) + +export const DigestItem: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type H256 = Bytes + +export interface PerDispatchClass { + normal: Weight + operational: Weight + mandatory: Weight +} + +export const PerDispatchClass: sts.Type = sts.struct(() => { + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } +}) + +export type AccountId32 = Bytes + +export interface AccountInfo { + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData +} + +export const AccountInfo: sts.Type = sts.struct(() => { + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } +}) + +export const Location: sts.Type = sts.struct(() => { + return { + chainId: ChainId, + accountId: MultiAccountId, + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export const CrossDomainMessage: sts.Type = sts.struct(() => { + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } +}) + +export const Proof: sts.Type = sts.struct(() => { + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export const BlockInfo: sts.Type = sts.struct(() => { + return { + blockNumber: sts.number(), + blockHash: H256, + } +}) + +export interface BlockInfo { + blockNumber: number + blockHash: H256 +} + +export interface Proof { + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: ([BlockInfo, StorageProof] | undefined) + messageProof: StorageProof +} + +export interface CrossDomainMessage { + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag +} + +export const InitiateChannelParams: sts.Type = sts.struct(() => { + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } +}) + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +export const FraudProof: sts.Type = sts.closedEnum(() => { + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } +}) + +export interface ValidBundleProof { + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number +} + +export const InvalidTransactionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } +}) + +export interface InvalidTransactionProof { + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } +}) + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof +} + +export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } +}) + +export interface InvalidBundlesFraudProof { + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + } +}) + +export interface ImproperTransactionSortitionProof { + domainId: DomainId + badReceiptHash: H256 +} + +export const BundleEquivocationProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } +}) + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleEquivocationProof { + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle + +export interface FraudProof_BundleEquivocation { + __kind: 'BundleEquivocation' + value: BundleEquivocationProof +} + +export interface FraudProof_ImproperTransactionSortition { + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof +} + +export interface FraudProof_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProof_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof +} + +export interface FraudProof_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProof_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProof_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProof_InvalidTransaction { + __kind: 'InvalidTransaction' + value: InvalidTransactionProof +} + +export interface FraudProof_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export const OriginCaller: sts.Type = sts.closedEnum(() => { + return { + Void: Void, + system: RawOrigin, + } +}) + +export const RawOrigin: sts.Type = sts.closedEnum(() => { + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } +}) + +export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed + +export interface RawOrigin_None { + __kind: 'None' +} + +export interface RawOrigin_Root { + __kind: 'Root' +} + +export interface RawOrigin_Signed { + __kind: 'Signed' + value: AccountId32 +} + +export const Void: sts.Type = sts.closedEnum(() => { + return { + } +}) + +export type Void = never + +export type OriginCaller = OriginCaller_Void | OriginCaller_system + +export interface OriginCaller_Void { + __kind: 'Void' + value: Void +} + +export interface OriginCaller_system { + __kind: 'system' + value: RawOrigin +} + +export const Call: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const VestingCall: sts.Type = sts.closedEnum(() => { + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer + +/** + * See [`Pallet::claim`]. + */ +export interface VestingCall_claim { + __kind: 'claim' +} + +/** + * See [`Pallet::claim_for`]. + */ +export interface VestingCall_claim_for { + __kind: 'claim_for' + dest: MultiAddress +} + +/** + * See [`Pallet::update_vesting_schedules`]. + */ +export interface VestingCall_update_vesting_schedules { + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] +} + +/** + * See [`Pallet::vested_transfer`]. + */ +export interface VestingCall_vested_transfer { + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule +} + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + +export interface MultiAddress_Address20 { + __kind: 'Address20' + value: Bytes +} + +export interface MultiAddress_Address32 { + __kind: 'Address32' + value: Bytes +} + +export interface MultiAddress_Id { + __kind: 'Id' + value: AccountId32 +} + +export interface MultiAddress_Index { + __kind: 'Index' +} + +export interface MultiAddress_Raw { + __kind: 'Raw' + value: Bytes +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const UtilityCall: sts.Type = sts.closedEnum(() => { + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight + +/** + * See [`Pallet::as_derivative`]. + */ +export interface UtilityCall_as_derivative { + __kind: 'as_derivative' + index: number + call: Call +} + +/** + * See [`Pallet::batch`]. + */ +export interface UtilityCall_batch { + __kind: 'batch' + calls: Call[] +} + +/** + * See [`Pallet::batch_all`]. + */ +export interface UtilityCall_batch_all { + __kind: 'batch_all' + calls: Call[] +} + +/** + * See [`Pallet::dispatch_as`]. + */ +export interface UtilityCall_dispatch_as { + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call +} + +/** + * See [`Pallet::force_batch`]. + */ +export interface UtilityCall_force_batch { + __kind: 'force_batch' + calls: Call[] +} + +/** + * See [`Pallet::with_weight`]. + */ +export interface UtilityCall_with_weight { + __kind: 'with_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TransporterCall: sts.Type = sts.closedEnum(() => { + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TransporterCall = TransporterCall_transfer + +/** + * See [`Pallet::transfer`]. + */ +export interface TransporterCall_transfer { + __kind: 'transfer' + dstLocation: Location + amount: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TimestampCall: sts.Type = sts.closedEnum(() => { + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TimestampCall = TimestampCall_set + +/** + * See [`Pallet::set`]. + */ +export interface TimestampCall_set { + __kind: 'set' + now: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SystemCall: sts.Type = sts.closedEnum(() => { + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage + +/** + * See [`Pallet::apply_authorized_upgrade`]. + */ +export interface SystemCall_apply_authorized_upgrade { + __kind: 'apply_authorized_upgrade' + code: Bytes +} + +/** + * See [`Pallet::authorize_upgrade`]. + */ +export interface SystemCall_authorize_upgrade { + __kind: 'authorize_upgrade' + codeHash: H256 +} + +/** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ +export interface SystemCall_authorize_upgrade_without_checks { + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 +} + +/** + * See [`Pallet::kill_prefix`]. + */ +export interface SystemCall_kill_prefix { + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number +} + +/** + * See [`Pallet::kill_storage`]. + */ +export interface SystemCall_kill_storage { + __kind: 'kill_storage' + keys: Bytes[] +} + +/** + * See [`Pallet::remark`]. + */ +export interface SystemCall_remark { + __kind: 'remark' + remark: Bytes +} + +/** + * See [`Pallet::remark_with_event`]. + */ +export interface SystemCall_remark_with_event { + __kind: 'remark_with_event' + remark: Bytes +} + +/** + * See [`Pallet::set_code`]. + */ +export interface SystemCall_set_code { + __kind: 'set_code' + code: Bytes +} + +/** + * See [`Pallet::set_code_without_checks`]. + */ +export interface SystemCall_set_code_without_checks { + __kind: 'set_code_without_checks' + code: Bytes +} + +/** + * See [`Pallet::set_heap_pages`]. + */ +export interface SystemCall_set_heap_pages { + __kind: 'set_heap_pages' + pages: bigint +} + +/** + * See [`Pallet::set_storage`]. + */ +export interface SystemCall_set_storage { + __kind: 'set_storage' + items: [Bytes, Bytes][] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SudoCall: sts.Type = sts.closedEnum(() => { + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight + +/** + * See [`Pallet::remove_key`]. + */ +export interface SudoCall_remove_key { + __kind: 'remove_key' +} + +/** + * See [`Pallet::set_key`]. + */ +export interface SudoCall_set_key { + __kind: 'set_key' + new: MultiAddress +} + +/** + * See [`Pallet::sudo`]. + */ +export interface SudoCall_sudo { + __kind: 'sudo' + call: Call +} + +/** + * See [`Pallet::sudo_as`]. + */ +export interface SudoCall_sudo_as { + __kind: 'sudo_as' + who: MultiAddress + call: Call +} + +/** + * See [`Pallet::sudo_unchecked_weight`]. + */ +export interface SudoCall_sudo_unchecked_weight { + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SubspaceCall: sts.Type = sts.closedEnum(() => { + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote + +/** + * See [`Pallet::enable_authoring_by_anyone`]. + */ +export interface SubspaceCall_enable_authoring_by_anyone { + __kind: 'enable_authoring_by_anyone' +} + +/** + * See [`Pallet::enable_rewards_at`]. + */ +export interface SubspaceCall_enable_rewards_at { + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt +} + +/** + * See [`Pallet::enable_solution_range_adjustment`]. + */ +export interface SubspaceCall_enable_solution_range_adjustment { + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) +} + +/** + * See [`Pallet::report_equivocation`]. + */ +export interface SubspaceCall_report_equivocation { + __kind: 'report_equivocation' + equivocationProof: EquivocationProof +} + +/** + * See [`Pallet::store_segment_headers`]. + */ +export interface SubspaceCall_store_segment_headers { + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] +} + +/** + * See [`Pallet::vote`]. + */ +export interface SubspaceCall_vote { + __kind: 'vote' + signedVote: SignedVote +} + +export interface SignedVote { + vote: Vote + signature: Signature +} + +export type Vote = Vote_V0 + +export interface Vote_V0 { + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput +} + +export type PotOutput = Bytes + +export interface Solution { + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof +} + +export type PosProof = Bytes + +export type ChunkWitness = Bytes + +export type RecordWitness = Bytes + +export type RecordCommitment = Bytes + +export type HistorySize = bigint + +export interface EquivocationProof { + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header +} + +export interface Header { + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest +} + +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange + +export interface EnableRewardsAt_Height { + __kind: 'Height' + value?: (number | undefined) +} + +export interface EnableRewardsAt_Manually { + __kind: 'Manually' +} + +export interface EnableRewardsAt_SolutionRange { + __kind: 'SolutionRange' + value: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls + +/** + * See [`Pallet::set_enable_balance_transfers`]. + */ +export interface RuntimeConfigsCall_set_enable_balance_transfers { + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean +} + +/** + * See [`Pallet::set_enable_domains`]. + */ +export interface RuntimeConfigsCall_set_enable_domains { + __kind: 'set_enable_domains' + enableDomains: boolean +} + +/** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ +export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean +} + +/** + * See [`Pallet::set_enable_non_root_calls`]. + */ +export interface RuntimeConfigsCall_set_enable_non_root_calls { + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const MessengerCall: sts.Type = sts.closedEnum(() => { + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response + +/** + * See [`Pallet::close_channel`]. + */ +export interface MessengerCall_close_channel { + __kind: 'close_channel' + chainId: ChainId + channelId: bigint +} + +/** + * See [`Pallet::initiate_channel`]. + */ +export interface MessengerCall_initiate_channel { + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams +} + +/** + * See [`Pallet::relay_message`]. + */ +export interface MessengerCall_relay_message { + __kind: 'relay_message' + msg: CrossDomainMessage +} + +/** + * See [`Pallet::relay_message_response`]. + */ +export interface MessengerCall_relay_message_response { + __kind: 'relay_message_response' + msg: CrossDomainMessage +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const DomainsCall: sts.Type = sts.closedEnum(() => { + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake + +/** + * See [`Pallet::deregister_operator`]. + */ +export interface DomainsCall_deregister_operator { + __kind: 'deregister_operator' + operatorId: bigint +} + +/** + * See [`Pallet::force_staking_epoch_transition`]. + */ +export interface DomainsCall_force_staking_epoch_transition { + __kind: 'force_staking_epoch_transition' + domainId: DomainId +} + +/** + * See [`Pallet::instantiate_domain`]. + */ +export interface DomainsCall_instantiate_domain { + __kind: 'instantiate_domain' + domainConfig: DomainConfig +} + +/** + * See [`Pallet::nominate_operator`]. + */ +export interface DomainsCall_nominate_operator { + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint +} + +/** + * See [`Pallet::register_domain_runtime`]. + */ +export interface DomainsCall_register_domain_runtime { + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::register_operator`]. + */ +export interface DomainsCall_register_operator { + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig +} + +/** + * See [`Pallet::submit_bundle`]. + */ +export interface DomainsCall_submit_bundle { + __kind: 'submit_bundle' + opaqueBundle: Bundle +} + +/** + * See [`Pallet::submit_fraud_proof`]. + */ +export interface DomainsCall_submit_fraud_proof { + __kind: 'submit_fraud_proof' + fraudProof: FraudProof +} + +/** + * See [`Pallet::switch_domain`]. + */ +export interface DomainsCall_switch_domain { + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId +} + +/** + * See [`Pallet::unlock_funds`]. + */ +export interface DomainsCall_unlock_funds { + __kind: 'unlock_funds' + operatorId: bigint +} + +/** + * See [`Pallet::unlock_operator`]. + */ +export interface DomainsCall_unlock_operator { + __kind: 'unlock_operator' + operatorId: bigint +} + +/** + * See [`Pallet::update_domain_operator_allow_list`]. + */ +export interface DomainsCall_update_domain_operator_allow_list { + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList +} + +/** + * See [`Pallet::upgrade_domain_runtime`]. + */ +export interface DomainsCall_upgrade_domain_runtime { + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::withdraw_stake`]. + */ +export interface DomainsCall_withdraw_stake { + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const BalancesCall: sts.Type = sts.closedEnum(() => { + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts + +/** + * See [`Pallet::force_set_balance`]. + */ +export interface BalancesCall_force_set_balance { + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint +} + +/** + * See [`Pallet::force_transfer`]. + */ +export interface BalancesCall_force_transfer { + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::force_unreserve`]. + */ +export interface BalancesCall_force_unreserve { + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint +} + +/** + * See [`Pallet::transfer_all`]. + */ +export interface BalancesCall_transfer_all { + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean +} + +/** + * See [`Pallet::transfer_allow_death`]. + */ +export interface BalancesCall_transfer_allow_death { + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::transfer_keep_alive`]. + */ +export interface BalancesCall_transfer_keep_alive { + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::upgrade_accounts`]. + */ +export interface BalancesCall_upgrade_accounts { + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + +export interface Call_Balances { + __kind: 'Balances' + value: BalancesCall +} + +export interface Call_Domains { + __kind: 'Domains' + value: DomainsCall +} + +export interface Call_Messenger { + __kind: 'Messenger' + value: MessengerCall +} + +export interface Call_RuntimeConfigs { + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall +} + +export interface Call_Subspace { + __kind: 'Subspace' + value: SubspaceCall +} + +export interface Call_Sudo { + __kind: 'Sudo' + value: SudoCall +} + +export interface Call_System { + __kind: 'System' + value: SystemCall +} + +export interface Call_Timestamp { + __kind: 'Timestamp' + value: TimestampCall +} + +export interface Call_Transporter { + __kind: 'Transporter' + value: TransporterCall +} + +export interface Call_Utility { + __kind: 'Utility' + value: UtilityCall +} + +export interface Call_Vesting { + __kind: 'Vesting' + value: VestingCall +} + +export const MultiAddress: sts.Type = sts.closedEnum(() => { + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } +}) + +export const SignedVote: sts.Type = sts.struct(() => { + return { + vote: Vote, + signature: Signature, + } +}) + +export const Vote: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } +}) + +export const PotOutput = sts.bytes() + +export const Solution: sts.Type = sts.struct(() => { + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } +}) + +export const PosProof = sts.bytes() + +export const ChunkWitness = sts.bytes() + +export const RecordWitness = sts.bytes() + +export const RecordCommitment = sts.bytes() + +export const EquivocationProof: sts.Type = sts.struct(() => { + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } +}) + +export const Header: sts.Type
= sts.struct(() => { + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } +}) + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + Evm: sts.unit(), + } +}) + +export const DomainId = sts.number() + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Public = sts.bytes() + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export const AccountId32 = sts.bytes() + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) diff --git a/indexers/consensus-squid/src/types/v1.ts b/indexers/consensus-squid/src/types/v1.ts new file mode 100644 index 000000000..c090e8b5b --- /dev/null +++ b/indexers/consensus-squid/src/types/v1.ts @@ -0,0 +1,4097 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export const PalletId = sts.bytes() + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export interface Transfers { + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] +} + +export const Transfers: sts.Type = sts.struct(() => { + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } +}) + +export interface ConfirmedDomainBlock { + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 +} + +export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } +}) + +export interface BundleDigest { + headerHash: H256 + extrinsicsRoot: H256 + size: number +} + +export const BundleDigest: sts.Type = sts.struct(() => { + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } +}) + +export type H256 = Bytes + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidXDM { + __kind: 'InvalidXDM' + value: number +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export type DomainId = number + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] +} + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export const DomainId = sts.number() + +export interface Withdrawal { + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: (WithdrawalInShares | undefined) +} + +export interface WithdrawalInShares { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint +} + +export type DomainEpoch = [DomainId, number] + +export interface WithdrawalInBalance { + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint +} + +export const Withdrawal: sts.Type = sts.struct(() => { + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } +}) + +export const WithdrawalInShares: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } +}) + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export const WithdrawalInBalance: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } +}) + +export interface Deposit { + known: KnownDeposit + pending?: (PendingDeposit | undefined) +} + +export interface PendingDeposit { + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint +} + +export interface KnownDeposit { + shares: bigint + storageFeeDeposit: bigint +} + +export const Deposit: sts.Type = sts.struct(() => { + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } +}) + +export const PendingDeposit: sts.Type = sts.struct(() => { + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } +}) + +export const KnownDeposit: sts.Type = sts.struct(() => { + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } +}) + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const Percent = sts.number() + +export type AccountId32 = Bytes + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export interface DomainsHoldIdentifier_StorageFund { + __kind: 'StorageFund' + value: bigint +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author or rewards not enabled. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +export type SegmentCommitment = Bytes + +export type SegmentIndex = bigint + +export type Public = Bytes + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author. + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter. + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_StorageFeeDeposited { + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_BundleEquivocation { + __kind: 'BundleEquivocation' + value: Slot +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +export type Slot = bigint + +export type RuntimeType = RuntimeType_Evm + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export const Public = sts.bytes() + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } +}) + +export const Slot = sts.bigint() + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + Evm: sts.unit(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export const MultiAddress: sts.Type = sts.closedEnum(() => { + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + +export interface MultiAddress_Address20 { + __kind: 'Address20' + value: Bytes +} + +export interface MultiAddress_Address32 { + __kind: 'Address32' + value: Bytes +} + +export interface MultiAddress_Id { + __kind: 'Id' + value: AccountId32 +} + +export interface MultiAddress_Index { + __kind: 'Index' +} + +export interface MultiAddress_Raw { + __kind: 'Raw' + value: Bytes +} + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const FraudProof: sts.Type = sts.closedEnum(() => { + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } +}) + +export interface ValidBundleProof { + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number +} + +export const InvalidTransfersProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export interface InvalidTransfersProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const InvalidTransactionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } +}) + +export interface InvalidTransactionProof { + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } +}) + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof +} + +export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } +}) + +export interface InvalidBundlesFraudProof { + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + } +}) + +export interface ImproperTransactionSortitionProof { + domainId: DomainId + badReceiptHash: H256 +} + +export const BundleEquivocationProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } +}) + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export const PotOutput = sts.bytes() + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export type PotOutput = Bytes + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleEquivocationProof { + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + +export interface FraudProof_BundleEquivocation { + __kind: 'BundleEquivocation' + value: BundleEquivocationProof +} + +export interface FraudProof_ImproperTransactionSortition { + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof +} + +export interface FraudProof_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProof_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof +} + +export interface FraudProof_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProof_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProof_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProof_InvalidTransaction { + __kind: 'InvalidTransaction' + value: InvalidTransactionProof +} + +export interface FraudProof_InvalidTransfers { + __kind: 'InvalidTransfers' + value: InvalidTransfersProof +} + +export interface FraudProof_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export const OriginCaller: sts.Type = sts.closedEnum(() => { + return { + Void: Void, + system: RawOrigin, + } +}) + +export const RawOrigin: sts.Type = sts.closedEnum(() => { + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } +}) + +export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed + +export interface RawOrigin_None { + __kind: 'None' +} + +export interface RawOrigin_Root { + __kind: 'Root' +} + +export interface RawOrigin_Signed { + __kind: 'Signed' + value: AccountId32 +} + +export const Void: sts.Type = sts.closedEnum(() => { + return { + } +}) + +export type Void = never + +export type OriginCaller = OriginCaller_Void | OriginCaller_system + +export interface OriginCaller_Void { + __kind: 'Void' + value: Void +} + +export interface OriginCaller_system { + __kind: 'system' + value: RawOrigin +} + +export const Call: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const VestingCall: sts.Type = sts.closedEnum(() => { + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer + +/** + * See [`Pallet::claim`]. + */ +export interface VestingCall_claim { + __kind: 'claim' +} + +/** + * See [`Pallet::claim_for`]. + */ +export interface VestingCall_claim_for { + __kind: 'claim_for' + dest: MultiAddress +} + +/** + * See [`Pallet::update_vesting_schedules`]. + */ +export interface VestingCall_update_vesting_schedules { + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] +} + +/** + * See [`Pallet::vested_transfer`]. + */ +export interface VestingCall_vested_transfer { + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const UtilityCall: sts.Type = sts.closedEnum(() => { + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight + +/** + * See [`Pallet::as_derivative`]. + */ +export interface UtilityCall_as_derivative { + __kind: 'as_derivative' + index: number + call: Call +} + +/** + * See [`Pallet::batch`]. + */ +export interface UtilityCall_batch { + __kind: 'batch' + calls: Call[] +} + +/** + * See [`Pallet::batch_all`]. + */ +export interface UtilityCall_batch_all { + __kind: 'batch_all' + calls: Call[] +} + +/** + * See [`Pallet::dispatch_as`]. + */ +export interface UtilityCall_dispatch_as { + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call +} + +/** + * See [`Pallet::force_batch`]. + */ +export interface UtilityCall_force_batch { + __kind: 'force_batch' + calls: Call[] +} + +/** + * See [`Pallet::with_weight`]. + */ +export interface UtilityCall_with_weight { + __kind: 'with_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TransporterCall: sts.Type = sts.closedEnum(() => { + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } +}) + +export const Location: sts.Type = sts.struct(() => { + return { + chainId: ChainId, + accountId: MultiAccountId, + } +}) + +export interface Location { + chainId: ChainId + accountId: MultiAccountId +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TransporterCall = TransporterCall_transfer + +/** + * See [`Pallet::transfer`]. + */ +export interface TransporterCall_transfer { + __kind: 'transfer' + dstLocation: Location + amount: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TimestampCall: sts.Type = sts.closedEnum(() => { + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TimestampCall = TimestampCall_set + +/** + * See [`Pallet::set`]. + */ +export interface TimestampCall_set { + __kind: 'set' + now: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SystemCall: sts.Type = sts.closedEnum(() => { + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage + +/** + * See [`Pallet::apply_authorized_upgrade`]. + */ +export interface SystemCall_apply_authorized_upgrade { + __kind: 'apply_authorized_upgrade' + code: Bytes +} + +/** + * See [`Pallet::authorize_upgrade`]. + */ +export interface SystemCall_authorize_upgrade { + __kind: 'authorize_upgrade' + codeHash: H256 +} + +/** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ +export interface SystemCall_authorize_upgrade_without_checks { + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 +} + +/** + * See [`Pallet::kill_prefix`]. + */ +export interface SystemCall_kill_prefix { + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number +} + +/** + * See [`Pallet::kill_storage`]. + */ +export interface SystemCall_kill_storage { + __kind: 'kill_storage' + keys: Bytes[] +} + +/** + * See [`Pallet::remark`]. + */ +export interface SystemCall_remark { + __kind: 'remark' + remark: Bytes +} + +/** + * See [`Pallet::remark_with_event`]. + */ +export interface SystemCall_remark_with_event { + __kind: 'remark_with_event' + remark: Bytes +} + +/** + * See [`Pallet::set_code`]. + */ +export interface SystemCall_set_code { + __kind: 'set_code' + code: Bytes +} + +/** + * See [`Pallet::set_code_without_checks`]. + */ +export interface SystemCall_set_code_without_checks { + __kind: 'set_code_without_checks' + code: Bytes +} + +/** + * See [`Pallet::set_heap_pages`]. + */ +export interface SystemCall_set_heap_pages { + __kind: 'set_heap_pages' + pages: bigint +} + +/** + * See [`Pallet::set_storage`]. + */ +export interface SystemCall_set_storage { + __kind: 'set_storage' + items: [Bytes, Bytes][] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SudoCall: sts.Type = sts.closedEnum(() => { + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight + +/** + * See [`Pallet::remove_key`]. + */ +export interface SudoCall_remove_key { + __kind: 'remove_key' +} + +/** + * See [`Pallet::set_key`]. + */ +export interface SudoCall_set_key { + __kind: 'set_key' + new: MultiAddress +} + +/** + * See [`Pallet::sudo`]. + */ +export interface SudoCall_sudo { + __kind: 'sudo' + call: Call +} + +/** + * See [`Pallet::sudo_as`]. + */ +export interface SudoCall_sudo_as { + __kind: 'sudo_as' + who: MultiAddress + call: Call +} + +/** + * See [`Pallet::sudo_unchecked_weight`]. + */ +export interface SudoCall_sudo_unchecked_weight { + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SubspaceCall: sts.Type = sts.closedEnum(() => { + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } +}) + +export const SignedVote: sts.Type = sts.struct(() => { + return { + vote: Vote, + signature: Signature, + } +}) + +export const Signature = sts.bytes() + +export const Vote: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } +}) + +export const Solution: sts.Type = sts.struct(() => { + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } +}) + +export const PosProof = sts.bytes() + +export const ChunkWitness = sts.bytes() + +export const Scalar: sts.Type = sts.struct(() => { + return { + inner: sts.bytes(), + } +}) + +export interface Scalar { + inner: Bytes +} + +export const RecordWitness = sts.bytes() + +export const RecordCommitment = sts.bytes() + +export const PieceOffset = sts.number() + +export const HistorySize = sts.bigint() + +export interface Solution { + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof +} + +export type PosProof = Bytes + +export type ChunkWitness = Bytes + +export type RecordWitness = Bytes + +export type RecordCommitment = Bytes + +export type PieceOffset = number + +export type HistorySize = bigint + +export type Vote = Vote_V0 + +export interface Vote_V0 { + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput +} + +export interface SignedVote { + vote: Vote + signature: Signature +} + +export type Signature = Bytes + +export const EquivocationProof: sts.Type = sts.struct(() => { + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } +}) + +export const Header: sts.Type
= sts.struct(() => { + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } +}) + +export const Digest: sts.Type = sts.struct(() => { + return { + logs: sts.array(() => DigestItem), + } +}) + +export const DigestItem: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + +export interface DigestItem_Consensus { + __kind: 'Consensus' + value: [Bytes, Bytes] +} + +export interface DigestItem_Other { + __kind: 'Other' + value: Bytes +} + +export interface DigestItem_PreRuntime { + __kind: 'PreRuntime' + value: [Bytes, Bytes] +} + +export interface DigestItem_RuntimeEnvironmentUpdated { + __kind: 'RuntimeEnvironmentUpdated' +} + +export interface DigestItem_Seal { + __kind: 'Seal' + value: [Bytes, Bytes] +} + +export interface Digest { + logs: DigestItem[] +} + +export interface Header { + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest +} + +export interface EquivocationProof { + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header +} + +export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } +}) + +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange + +export interface EnableRewardsAt_Height { + __kind: 'Height' + value?: (number | undefined) +} + +export interface EnableRewardsAt_Manually { + __kind: 'Manually' +} + +export interface EnableRewardsAt_SolutionRange { + __kind: 'SolutionRange' + value: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote + +/** + * See [`Pallet::enable_authoring_by_anyone`]. + */ +export interface SubspaceCall_enable_authoring_by_anyone { + __kind: 'enable_authoring_by_anyone' +} + +/** + * See [`Pallet::enable_rewards_at`]. + */ +export interface SubspaceCall_enable_rewards_at { + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt +} + +/** + * See [`Pallet::enable_solution_range_adjustment`]. + */ +export interface SubspaceCall_enable_solution_range_adjustment { + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) +} + +/** + * See [`Pallet::report_equivocation`]. + */ +export interface SubspaceCall_report_equivocation { + __kind: 'report_equivocation' + equivocationProof: EquivocationProof +} + +/** + * See [`Pallet::store_segment_headers`]. + */ +export interface SubspaceCall_store_segment_headers { + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] +} + +/** + * See [`Pallet::vote`]. + */ +export interface SubspaceCall_vote { + __kind: 'vote' + signedVote: SignedVote +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls + +/** + * See [`Pallet::set_enable_balance_transfers`]. + */ +export interface RuntimeConfigsCall_set_enable_balance_transfers { + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean +} + +/** + * See [`Pallet::set_enable_domains`]. + */ +export interface RuntimeConfigsCall_set_enable_domains { + __kind: 'set_enable_domains' + enableDomains: boolean +} + +/** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ +export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean +} + +/** + * See [`Pallet::set_enable_non_root_calls`]. + */ +export interface RuntimeConfigsCall_set_enable_non_root_calls { + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const MessengerCall: sts.Type = sts.closedEnum(() => { + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } +}) + +export const CrossDomainMessage: sts.Type = sts.struct(() => { + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } +}) + +export const MessageWeightTag: sts.Type = sts.closedEnum(() => { + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } +}) + +export const Endpoint: sts.Type = sts.closedEnum(() => { + return { + Id: sts.bigint(), + } +}) + +export type Endpoint = Endpoint_Id + +export interface Endpoint_Id { + __kind: 'Id' + value: bigint +} + +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen + +export interface MessageWeightTag_EndpointRequest { + __kind: 'EndpointRequest' + value: Endpoint +} + +export interface MessageWeightTag_EndpointResponse { + __kind: 'EndpointResponse' + value: Endpoint +} + +export interface MessageWeightTag_None { + __kind: 'None' +} + +export interface MessageWeightTag_ProtocolChannelClose { + __kind: 'ProtocolChannelClose' +} + +export interface MessageWeightTag_ProtocolChannelOpen { + __kind: 'ProtocolChannelOpen' +} + +export const Proof: sts.Type = sts.struct(() => { + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } +}) + +export const BlockInfo: sts.Type = sts.struct(() => { + return { + blockNumber: sts.number(), + blockHash: H256, + } +}) + +export interface BlockInfo { + blockNumber: number + blockHash: H256 +} + +export interface Proof { + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: ([BlockInfo, StorageProof] | undefined) + messageProof: StorageProof +} + +export interface CrossDomainMessage { + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag +} + +export const InitiateChannelParams: sts.Type = sts.struct(() => { + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } +}) + +export const FeeModel: sts.Type = sts.struct(() => { + return { + relayFee: sts.bigint(), + } +}) + +export interface FeeModel { + relayFee: bigint +} + +export interface InitiateChannelParams { + maxOutgoingMessages: number + feeModel: FeeModel +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response + +/** + * See [`Pallet::close_channel`]. + */ +export interface MessengerCall_close_channel { + __kind: 'close_channel' + chainId: ChainId + channelId: bigint +} + +/** + * See [`Pallet::initiate_channel`]. + */ +export interface MessengerCall_initiate_channel { + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams +} + +/** + * See [`Pallet::relay_message`]. + */ +export interface MessengerCall_relay_message { + __kind: 'relay_message' + msg: CrossDomainMessage +} + +/** + * See [`Pallet::relay_message_response`]. + */ +export interface MessengerCall_relay_message_response { + __kind: 'relay_message_response' + msg: CrossDomainMessage +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const DomainsCall: sts.Type = sts.closedEnum(() => { + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } +}) + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake + +/** + * See [`Pallet::deregister_operator`]. + */ +export interface DomainsCall_deregister_operator { + __kind: 'deregister_operator' + operatorId: bigint +} + +/** + * See [`Pallet::force_staking_epoch_transition`]. + */ +export interface DomainsCall_force_staking_epoch_transition { + __kind: 'force_staking_epoch_transition' + domainId: DomainId +} + +/** + * See [`Pallet::instantiate_domain`]. + */ +export interface DomainsCall_instantiate_domain { + __kind: 'instantiate_domain' + domainConfig: DomainConfig +} + +/** + * See [`Pallet::nominate_operator`]. + */ +export interface DomainsCall_nominate_operator { + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint +} + +/** + * See [`Pallet::register_domain_runtime`]. + */ +export interface DomainsCall_register_domain_runtime { + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::register_operator`]. + */ +export interface DomainsCall_register_operator { + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig +} + +/** + * See [`Pallet::submit_bundle`]. + */ +export interface DomainsCall_submit_bundle { + __kind: 'submit_bundle' + opaqueBundle: Bundle +} + +/** + * See [`Pallet::submit_fraud_proof`]. + */ +export interface DomainsCall_submit_fraud_proof { + __kind: 'submit_fraud_proof' + fraudProof: FraudProof +} + +/** + * See [`Pallet::switch_domain`]. + */ +export interface DomainsCall_switch_domain { + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId +} + +/** + * See [`Pallet::unlock_funds`]. + */ +export interface DomainsCall_unlock_funds { + __kind: 'unlock_funds' + operatorId: bigint +} + +/** + * See [`Pallet::unlock_operator`]. + */ +export interface DomainsCall_unlock_operator { + __kind: 'unlock_operator' + operatorId: bigint +} + +/** + * See [`Pallet::update_domain_operator_allow_list`]. + */ +export interface DomainsCall_update_domain_operator_allow_list { + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList +} + +/** + * See [`Pallet::upgrade_domain_runtime`]. + */ +export interface DomainsCall_upgrade_domain_runtime { + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::withdraw_stake`]. + */ +export interface DomainsCall_withdraw_stake { + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const BalancesCall: sts.Type = sts.closedEnum(() => { + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts + +/** + * See [`Pallet::force_set_balance`]. + */ +export interface BalancesCall_force_set_balance { + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint +} + +/** + * See [`Pallet::force_transfer`]. + */ +export interface BalancesCall_force_transfer { + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::force_unreserve`]. + */ +export interface BalancesCall_force_unreserve { + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint +} + +/** + * See [`Pallet::transfer_all`]. + */ +export interface BalancesCall_transfer_all { + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean +} + +/** + * See [`Pallet::transfer_allow_death`]. + */ +export interface BalancesCall_transfer_allow_death { + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::transfer_keep_alive`]. + */ +export interface BalancesCall_transfer_keep_alive { + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::upgrade_accounts`]. + */ +export interface BalancesCall_upgrade_accounts { + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + +export interface Call_Balances { + __kind: 'Balances' + value: BalancesCall +} + +export interface Call_Domains { + __kind: 'Domains' + value: DomainsCall +} + +export interface Call_Messenger { + __kind: 'Messenger' + value: MessengerCall +} + +export interface Call_RuntimeConfigs { + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall +} + +export interface Call_Subspace { + __kind: 'Subspace' + value: SubspaceCall +} + +export interface Call_Sudo { + __kind: 'Sudo' + value: SudoCall +} + +export interface Call_System { + __kind: 'System' + value: SystemCall +} + +export interface Call_Timestamp { + __kind: 'Timestamp' + value: TimestampCall +} + +export interface Call_Transporter { + __kind: 'Transporter' + value: TransporterCall +} + +export interface Call_Utility { + __kind: 'Utility' + value: UtilityCall +} + +export interface Call_Vesting { + __kind: 'Vesting' + value: VestingCall +} + +export const AccountId32 = sts.bytes() diff --git a/indexers/consensus-squid/src/types/v3.ts b/indexers/consensus-squid/src/types/v3.ts new file mode 100644 index 000000000..7d6b8f87e --- /dev/null +++ b/indexers/consensus-squid/src/types/v3.ts @@ -0,0 +1,2472 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export interface RewardPoint { + block: number + subsidy: bigint +} + +export interface DomainAllowlistUpdates { + allowChains: ChainId[] + removeChains: ChainId[] +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export interface Channel { + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: (bigint | undefined) + maxOutgoingMessages: number + fee: FeeModel + maybeOwner?: (AccountId32 | undefined) +} + +export interface FeeModel { + relayFee: bigint +} + +export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open + +export interface ChannelState_Closed { + __kind: 'Closed' +} + +export interface ChannelState_Initiated { + __kind: 'Initiated' +} + +export interface ChannelState_Open { + __kind: 'Open' +} + +export const Channel: sts.Type = sts.struct(() => { + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + maybeOwner: sts.option(() => AccountId32), + } +}) + +export const FeeModel: sts.Type = sts.struct(() => { + return { + relayFee: sts.bigint(), + } +}) + +export const ChannelState: sts.Type = sts.closedEnum(() => { + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } +}) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export type DomainId = number + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_PendingSlash { + __kind: 'PendingSlash' +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type DomainEpoch = [DomainId, number] + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export const Percent = sts.number() + +export type AccountId32 = Bytes + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export interface HoldIdentifier_Messenger { + __kind: 'Messenger' + value: MessengerHoldIdentifier +} + +export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel + +export interface MessengerHoldIdentifier_Channel { + __kind: 'Channel' + value: [ChainId, bigint] +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export interface DomainsHoldIdentifier_StorageFund { + __kind: 'StorageFund' + value: bigint +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } +}) + +export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export const AccountId32 = sts.bytes() + +export type Slot = bigint + +export const Slot = sts.bigint() + +export const RewardPoint: sts.Type = sts.struct(() => { + return { + block: sts.number(), + subsidy: sts.bigint(), + } +}) + +export const MultiAddress: sts.Type = sts.closedEnum(() => { + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + +export interface MultiAddress_Address20 { + __kind: 'Address20' + value: Bytes +} + +export interface MultiAddress_Address32 { + __kind: 'Address32' + value: Bytes +} + +export interface MultiAddress_Id { + __kind: 'Id' + value: AccountId32 +} + +export interface MultiAddress_Index { + __kind: 'Index' +} + +export interface MultiAddress_Raw { + __kind: 'Raw' + value: Bytes +} + +export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } +}) + +export const DomainId = sts.number() + +export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { + return { + Add: ChainId, + Remove: ChainId, + } +}) + +export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove + +export interface ChainAllowlistUpdate_Add { + __kind: 'Add' + value: ChainId +} + +export interface ChainAllowlistUpdate_Remove { + __kind: 'Remove' + value: ChainId +} + +export const CrossDomainMessage: sts.Type = sts.struct(() => { + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } +}) + +export const MessageWeightTag: sts.Type = sts.closedEnum(() => { + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } +}) + +export const Endpoint: sts.Type = sts.closedEnum(() => { + return { + Id: sts.bigint(), + } +}) + +export type Endpoint = Endpoint_Id + +export interface Endpoint_Id { + __kind: 'Id' + value: bigint +} + +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen + +export interface MessageWeightTag_EndpointRequest { + __kind: 'EndpointRequest' + value: Endpoint +} + +export interface MessageWeightTag_EndpointResponse { + __kind: 'EndpointResponse' + value: Endpoint +} + +export interface MessageWeightTag_None { + __kind: 'None' +} + +export interface MessageWeightTag_ProtocolChannelClose { + __kind: 'ProtocolChannelClose' +} + +export interface MessageWeightTag_ProtocolChannelOpen { + __kind: 'ProtocolChannelOpen' +} + +export const Proof: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { + return { + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Type_237, + } +}) + +export const Type_237: sts.Type = sts.struct(() => { + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } +}) + +export interface Type_237 { + leafIndices: bigint[] + leafCount: bigint + items: H256[] +} + +export type H256 = Bytes + +export const EncodableOpaqueLeaf = sts.bytes() + +export const H256 = sts.bytes() + +export interface ConsensusChainMmrLeafProof { + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Type_237 +} + +export type EncodableOpaqueLeaf = Bytes + +export type Proof = Proof_Consensus | Proof_Domain + +export interface Proof_Consensus { + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof +} + +export interface Proof_Domain { + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof +} + +export interface CrossDomainMessage { + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag +} + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const OriginCaller: sts.Type = sts.closedEnum(() => { + return { + Void: Void, + system: RawOrigin, + } +}) + +export const RawOrigin: sts.Type = sts.closedEnum(() => { + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } +}) + +export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed + +export interface RawOrigin_None { + __kind: 'None' +} + +export interface RawOrigin_Root { + __kind: 'Root' +} + +export interface RawOrigin_Signed { + __kind: 'Signed' + value: AccountId32 +} + +export const Void: sts.Type = sts.closedEnum(() => { + return { + } +}) + +export type Void = never + +export type OriginCaller = OriginCaller_Void | OriginCaller_system + +export interface OriginCaller_Void { + __kind: 'Void' + value: Void +} + +export interface OriginCaller_system { + __kind: 'system' + value: RawOrigin +} + +export const Call: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const VestingCall: sts.Type = sts.closedEnum(() => { + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer + +/** + * See [`Pallet::claim`]. + */ +export interface VestingCall_claim { + __kind: 'claim' +} + +/** + * See [`Pallet::claim_for`]. + */ +export interface VestingCall_claim_for { + __kind: 'claim_for' + dest: MultiAddress +} + +/** + * See [`Pallet::update_vesting_schedules`]. + */ +export interface VestingCall_update_vesting_schedules { + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] +} + +/** + * See [`Pallet::vested_transfer`]. + */ +export interface VestingCall_vested_transfer { + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const UtilityCall: sts.Type = sts.closedEnum(() => { + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight + +/** + * See [`Pallet::as_derivative`]. + */ +export interface UtilityCall_as_derivative { + __kind: 'as_derivative' + index: number + call: Call +} + +/** + * See [`Pallet::batch`]. + */ +export interface UtilityCall_batch { + __kind: 'batch' + calls: Call[] +} + +/** + * See [`Pallet::batch_all`]. + */ +export interface UtilityCall_batch_all { + __kind: 'batch_all' + calls: Call[] +} + +/** + * See [`Pallet::dispatch_as`]. + */ +export interface UtilityCall_dispatch_as { + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call +} + +/** + * See [`Pallet::force_batch`]. + */ +export interface UtilityCall_force_batch { + __kind: 'force_batch' + calls: Call[] +} + +/** + * See [`Pallet::with_weight`]. + */ +export interface UtilityCall_with_weight { + __kind: 'with_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TransporterCall: sts.Type = sts.closedEnum(() => { + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } +}) + +export const Location: sts.Type = sts.struct(() => { + return { + chainId: ChainId, + accountId: MultiAccountId, + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export interface Location { + chainId: ChainId + accountId: MultiAccountId +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TransporterCall = TransporterCall_transfer + +/** + * See [`Pallet::transfer`]. + */ +export interface TransporterCall_transfer { + __kind: 'transfer' + dstLocation: Location + amount: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TimestampCall: sts.Type = sts.closedEnum(() => { + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TimestampCall = TimestampCall_set + +/** + * See [`Pallet::set`]. + */ +export interface TimestampCall_set { + __kind: 'set' + now: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SystemCall: sts.Type = sts.closedEnum(() => { + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage + +/** + * See [`Pallet::apply_authorized_upgrade`]. + */ +export interface SystemCall_apply_authorized_upgrade { + __kind: 'apply_authorized_upgrade' + code: Bytes +} + +/** + * See [`Pallet::authorize_upgrade`]. + */ +export interface SystemCall_authorize_upgrade { + __kind: 'authorize_upgrade' + codeHash: H256 +} + +/** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ +export interface SystemCall_authorize_upgrade_without_checks { + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 +} + +/** + * See [`Pallet::kill_prefix`]. + */ +export interface SystemCall_kill_prefix { + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number +} + +/** + * See [`Pallet::kill_storage`]. + */ +export interface SystemCall_kill_storage { + __kind: 'kill_storage' + keys: Bytes[] +} + +/** + * See [`Pallet::remark`]. + */ +export interface SystemCall_remark { + __kind: 'remark' + remark: Bytes +} + +/** + * See [`Pallet::remark_with_event`]. + */ +export interface SystemCall_remark_with_event { + __kind: 'remark_with_event' + remark: Bytes +} + +/** + * See [`Pallet::set_code`]. + */ +export interface SystemCall_set_code { + __kind: 'set_code' + code: Bytes +} + +/** + * See [`Pallet::set_code_without_checks`]. + */ +export interface SystemCall_set_code_without_checks { + __kind: 'set_code_without_checks' + code: Bytes +} + +/** + * See [`Pallet::set_heap_pages`]. + */ +export interface SystemCall_set_heap_pages { + __kind: 'set_heap_pages' + pages: bigint +} + +/** + * See [`Pallet::set_storage`]. + */ +export interface SystemCall_set_storage { + __kind: 'set_storage' + items: [Bytes, Bytes][] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SudoCall: sts.Type = sts.closedEnum(() => { + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight + +/** + * See [`Pallet::remove_key`]. + */ +export interface SudoCall_remove_key { + __kind: 'remove_key' +} + +/** + * See [`Pallet::set_key`]. + */ +export interface SudoCall_set_key { + __kind: 'set_key' + new: MultiAddress +} + +/** + * See [`Pallet::sudo`]. + */ +export interface SudoCall_sudo { + __kind: 'sudo' + call: Call +} + +/** + * See [`Pallet::sudo_as`]. + */ +export interface SudoCall_sudo_as { + __kind: 'sudo_as' + who: MultiAddress + call: Call +} + +/** + * See [`Pallet::sudo_unchecked_weight`]. + */ +export interface SudoCall_sudo_unchecked_weight { + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SubspaceCall: sts.Type = sts.closedEnum(() => { + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } +}) + +export const SignedVote: sts.Type = sts.struct(() => { + return { + vote: Vote, + signature: Signature, + } +}) + +export const Signature = sts.bytes() + +export const Vote: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } +}) + +export const PotOutput = sts.bytes() + +export const Solution: sts.Type = sts.struct(() => { + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } +}) + +export const PosProof = sts.bytes() + +export const ChunkWitness = sts.bytes() + +export const Scalar: sts.Type = sts.struct(() => { + return { + inner: sts.bytes(), + } +}) + +export interface Scalar { + inner: Bytes +} + +export const RecordWitness = sts.bytes() + +export const RecordCommitment = sts.bytes() + +export const PieceOffset = sts.number() + +export const HistorySize = sts.bigint() + +export const Public = sts.bytes() + +export interface Solution { + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof +} + +export type PosProof = Bytes + +export type ChunkWitness = Bytes + +export type RecordWitness = Bytes + +export type RecordCommitment = Bytes + +export type PieceOffset = number + +export type HistorySize = bigint + +export type Public = Bytes + +export type Vote = Vote_V0 + +export interface Vote_V0 { + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput +} + +export type PotOutput = Bytes + +export interface SignedVote { + vote: Vote + signature: Signature +} + +export type Signature = Bytes + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export type SegmentCommitment = Bytes + +export type SegmentIndex = bigint + +export const EquivocationProof: sts.Type = sts.struct(() => { + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } +}) + +export const Header: sts.Type
= sts.struct(() => { + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } +}) + +export const Digest: sts.Type = sts.struct(() => { + return { + logs: sts.array(() => DigestItem), + } +}) + +export const DigestItem: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + +export interface DigestItem_Consensus { + __kind: 'Consensus' + value: [Bytes, Bytes] +} + +export interface DigestItem_Other { + __kind: 'Other' + value: Bytes +} + +export interface DigestItem_PreRuntime { + __kind: 'PreRuntime' + value: [Bytes, Bytes] +} + +export interface DigestItem_RuntimeEnvironmentUpdated { + __kind: 'RuntimeEnvironmentUpdated' +} + +export interface DigestItem_Seal { + __kind: 'Seal' + value: [Bytes, Bytes] +} + +export interface Digest { + logs: DigestItem[] +} + +export interface Header { + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest +} + +export interface EquivocationProof { + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header +} + +export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } +}) + +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange + +export interface EnableRewardsAt_Height { + __kind: 'Height' + value?: (number | undefined) +} + +export interface EnableRewardsAt_Manually { + __kind: 'Manually' +} + +export interface EnableRewardsAt_SolutionRange { + __kind: 'SolutionRange' + value: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote + +/** + * See [`Pallet::enable_authoring_by_anyone`]. + */ +export interface SubspaceCall_enable_authoring_by_anyone { + __kind: 'enable_authoring_by_anyone' +} + +/** + * See [`Pallet::enable_rewards_at`]. + */ +export interface SubspaceCall_enable_rewards_at { + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt +} + +/** + * See [`Pallet::enable_solution_range_adjustment`]. + */ +export interface SubspaceCall_enable_solution_range_adjustment { + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) +} + +/** + * See [`Pallet::report_equivocation`]. + */ +export interface SubspaceCall_report_equivocation { + __kind: 'report_equivocation' + equivocationProof: EquivocationProof +} + +/** + * See [`Pallet::store_segment_headers`]. + */ +export interface SubspaceCall_store_segment_headers { + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] +} + +/** + * See [`Pallet::vote`]. + */ +export interface SubspaceCall_vote { + __kind: 'vote' + signedVote: SignedVote +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls + +/** + * See [`Pallet::set_enable_balance_transfers`]. + */ +export interface RuntimeConfigsCall_set_enable_balance_transfers { + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean +} + +/** + * See [`Pallet::set_enable_domains`]. + */ +export interface RuntimeConfigsCall_set_enable_domains { + __kind: 'set_enable_domains' + enableDomains: boolean +} + +/** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ +export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean +} + +/** + * See [`Pallet::set_enable_non_root_calls`]. + */ +export interface RuntimeConfigsCall_set_enable_non_root_calls { + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RewardsCall: sts.Type = sts.closedEnum(() => { + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RewardsCall = RewardsCall_update_issuance_params + +/** + * See [`Pallet::update_issuance_params`]. + */ +export interface RewardsCall_update_issuance_params { + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const MessengerCall: sts.Type = sts.closedEnum(() => { + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } +}) + +export const InitiateChannelParams: sts.Type = sts.struct(() => { + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } +}) + +export interface InitiateChannelParams { + maxOutgoingMessages: number + feeModel: FeeModel +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist + +/** + * See [`Pallet::close_channel`]. + */ +export interface MessengerCall_close_channel { + __kind: 'close_channel' + chainId: ChainId + channelId: bigint +} + +/** + * See [`Pallet::initiate_channel`]. + */ +export interface MessengerCall_initiate_channel { + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams +} + +/** + * See [`Pallet::initiate_domain_update_chain_allowlist`]. + */ +export interface MessengerCall_initiate_domain_update_chain_allowlist { + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate +} + +/** + * See [`Pallet::relay_message`]. + */ +export interface MessengerCall_relay_message { + __kind: 'relay_message' + msg: CrossDomainMessage +} + +/** + * See [`Pallet::relay_message_response`]. + */ +export interface MessengerCall_relay_message_response { + __kind: 'relay_message_response' + msg: CrossDomainMessage +} + +/** + * See [`Pallet::update_consensus_chain_allowlist`]. + */ +export interface MessengerCall_update_consensus_chain_allowlist { + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate +} + +/** + * See [`Pallet::update_domain_allowlist`]. + */ +export interface MessengerCall_update_domain_allowlist { + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const DomainsCall: sts.Type = sts.closedEnum(() => { + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export const FraudProof: sts.Type = sts.closedEnum(() => { + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } +}) + +export interface ValidBundleProof { + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number +} + +export const InvalidTransfersProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidTransfersProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const InvalidTransactionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } +}) + +export interface InvalidTransactionProof { + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } +}) + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof +} + +export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidXDM { + __kind: 'InvalidXDM' + value: number +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export interface InvalidBundlesFraudProof { + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + } +}) + +export interface ImproperTransactionSortitionProof { + domainId: DomainId + badReceiptHash: H256 +} + +export const BundleEquivocationProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } +}) + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } +}) + +export const Transfers: sts.Type = sts.struct(() => { + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } +}) + +export interface Transfers { + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] +} + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } +}) + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint +} + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers +} + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleEquivocationProof { + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + +export interface FraudProof_BundleEquivocation { + __kind: 'BundleEquivocation' + value: BundleEquivocationProof +} + +export interface FraudProof_ImproperTransactionSortition { + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof +} + +export interface FraudProof_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProof_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof +} + +export interface FraudProof_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProof_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProof_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProof_InvalidTransaction { + __kind: 'InvalidTransaction' + value: InvalidTransactionProof +} + +export interface FraudProof_InvalidTransfers { + __kind: 'InvalidTransfers' + value: InvalidTransfersProof +} + +export interface FraudProof_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + Evm: sts.unit(), + } +}) + +export type RuntimeType = RuntimeType_Evm + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } +}) + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake + +/** + * See [`Pallet::deregister_operator`]. + */ +export interface DomainsCall_deregister_operator { + __kind: 'deregister_operator' + operatorId: bigint +} + +/** + * See [`Pallet::force_staking_epoch_transition`]. + */ +export interface DomainsCall_force_staking_epoch_transition { + __kind: 'force_staking_epoch_transition' + domainId: DomainId +} + +/** + * See [`Pallet::instantiate_domain`]. + */ +export interface DomainsCall_instantiate_domain { + __kind: 'instantiate_domain' + domainConfig: DomainConfig +} + +/** + * See [`Pallet::nominate_operator`]. + */ +export interface DomainsCall_nominate_operator { + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint +} + +/** + * See [`Pallet::register_domain_runtime`]. + */ +export interface DomainsCall_register_domain_runtime { + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::register_operator`]. + */ +export interface DomainsCall_register_operator { + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig +} + +/** + * See [`Pallet::submit_bundle`]. + */ +export interface DomainsCall_submit_bundle { + __kind: 'submit_bundle' + opaqueBundle: Bundle +} + +/** + * See [`Pallet::submit_fraud_proof`]. + */ +export interface DomainsCall_submit_fraud_proof { + __kind: 'submit_fraud_proof' + fraudProof: FraudProof +} + +/** + * See [`Pallet::unlock_funds`]. + */ +export interface DomainsCall_unlock_funds { + __kind: 'unlock_funds' + operatorId: bigint +} + +/** + * See [`Pallet::unlock_operator`]. + */ +export interface DomainsCall_unlock_operator { + __kind: 'unlock_operator' + operatorId: bigint +} + +/** + * See [`Pallet::update_domain_operator_allow_list`]. + */ +export interface DomainsCall_update_domain_operator_allow_list { + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList +} + +/** + * See [`Pallet::upgrade_domain_runtime`]. + */ +export interface DomainsCall_upgrade_domain_runtime { + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes +} + +/** + * See [`Pallet::withdraw_stake`]. + */ +export interface DomainsCall_withdraw_stake { + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const BalancesCall: sts.Type = sts.closedEnum(() => { + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts + +/** + * See [`Pallet::force_set_balance`]. + */ +export interface BalancesCall_force_set_balance { + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint +} + +/** + * See [`Pallet::force_transfer`]. + */ +export interface BalancesCall_force_transfer { + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::force_unreserve`]. + */ +export interface BalancesCall_force_unreserve { + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint +} + +/** + * See [`Pallet::transfer_all`]. + */ +export interface BalancesCall_transfer_all { + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean +} + +/** + * See [`Pallet::transfer_allow_death`]. + */ +export interface BalancesCall_transfer_allow_death { + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::transfer_keep_alive`]. + */ +export interface BalancesCall_transfer_keep_alive { + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint +} + +/** + * See [`Pallet::upgrade_accounts`]. + */ +export interface BalancesCall_upgrade_accounts { + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + +export interface Call_Balances { + __kind: 'Balances' + value: BalancesCall +} + +export interface Call_Domains { + __kind: 'Domains' + value: DomainsCall +} + +export interface Call_Messenger { + __kind: 'Messenger' + value: MessengerCall +} + +export interface Call_Rewards { + __kind: 'Rewards' + value: RewardsCall +} + +export interface Call_RuntimeConfigs { + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall +} + +export interface Call_Subspace { + __kind: 'Subspace' + value: SubspaceCall +} + +export interface Call_Sudo { + __kind: 'Sudo' + value: SudoCall +} + +export interface Call_System { + __kind: 'System' + value: SystemCall +} + +export interface Call_Timestamp { + __kind: 'Timestamp' + value: TimestampCall +} + +export interface Call_Transporter { + __kind: 'Transporter' + value: TransporterCall +} + +export interface Call_Utility { + __kind: 'Utility' + value: UtilityCall +} + +export interface Call_Vesting { + __kind: 'Vesting' + value: VestingCall +} diff --git a/indexers/consensus-squid/src/types/v5.ts b/indexers/consensus-squid/src/types/v5.ts new file mode 100644 index 000000000..bbfb77cef --- /dev/null +++ b/indexers/consensus-squid/src/types/v5.ts @@ -0,0 +1,4370 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export const Perbill = sts.number() + +export interface MessageWeightTags { + outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] + inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] +} + +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen + +export interface MessageWeightTag_EndpointRequest { + __kind: 'EndpointRequest' + value: Endpoint +} + +export interface MessageWeightTag_EndpointResponse { + __kind: 'EndpointResponse' + value: Endpoint +} + +export interface MessageWeightTag_None { + __kind: 'None' +} + +export interface MessageWeightTag_ProtocolChannelClose { + __kind: 'ProtocolChannelClose' +} + +export interface MessageWeightTag_ProtocolChannelOpen { + __kind: 'ProtocolChannelOpen' +} + +export type Endpoint = Endpoint_Id + +export interface Endpoint_Id { + __kind: 'Id' + value: bigint +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export const MessageWeightTags: sts.Type = sts.struct(() => { + return { + outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), + inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), + } +}) + +export const MessageWeightTag: sts.Type = sts.closedEnum(() => { + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } +}) + +export const Endpoint: sts.Type = sts.closedEnum(() => { + return { + Id: sts.bigint(), + } +}) + +export interface DomainRuntimeUpgradeEntry { + atHash: H256 + referenceCount: number +} + +export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { + return { + atHash: H256, + referenceCount: sts.number(), + } +}) + +export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone + +export interface PermissionedActionAllowedBy_Accounts { + __kind: 'Accounts' + value: AccountId32[] +} + +export interface PermissionedActionAllowedBy_Anyone { + __kind: 'Anyone' +} + +export type AccountId32 = Bytes + +export type H256 = Bytes + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers +} + +export interface Transfers { + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidBundleWeight { + __kind: 'InvalidBundleWeight' +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } +}) + +export const Transfers: sts.Type = sts.struct(() => { + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export type DomainId = number + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_AutoId { + __kind: 'AutoId' +} + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] +} + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const AccountId32 = sts.bytes() + +export interface RuntimeObject { + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number +} + +export interface RuntimeVersion { + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number +} + +export interface RawGenesis { + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] +} + +export type StorageData = Bytes + +export type StorageKey = Bytes + +export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm + +export interface RuntimeType_AutoId { + __kind: 'AutoId' +} + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +export const RuntimeObject: sts.Type = sts.struct(() => { + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } +}) + +export const RuntimeVersion: sts.Type = sts.struct(() => { + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } +}) + +export const RawGenesis: sts.Type = sts.struct(() => { + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } +}) + +export const StorageData = sts.bytes() + +export const StorageKey = sts.bytes() + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author or rewards not enabled. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +export type SegmentCommitment = Bytes + +export type SegmentIndex = bigint + +export type Public = Bytes + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_StorageFeeDeposited { + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * The `TotalIssuance` was forcefully changed. + */ +export interface BalancesEvent_TotalIssuanceForced { + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export const Public = sts.bytes() + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export const MultiAddress: sts.Type = sts.closedEnum(() => { + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + +export interface MultiAddress_Address20 { + __kind: 'Address20' + value: Bytes +} + +export interface MultiAddress_Address32 { + __kind: 'Address32' + value: Bytes +} + +export interface MultiAddress_Id { + __kind: 'Id' + value: AccountId32 +} + +export interface MultiAddress_Index { + __kind: 'Index' +} + +export interface MultiAddress_Raw { + __kind: 'Raw' + value: Bytes +} + +export const CrossDomainMessage: sts.Type = sts.struct(() => { + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Type_251, + weightTag: MessageWeightTag, + } +}) + +export const Type_251: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } +}) + +export const Proof: sts.Type = sts.struct(() => { + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } +}) + +export interface Proof { + leafIndices: bigint[] + leafCount: bigint + items: H256[] +} + +export const EncodableOpaqueLeaf = sts.bytes() + +export interface ConsensusChainMmrLeafProof { + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof +} + +export type EncodableOpaqueLeaf = Bytes + +export type Type_251 = Type_251_Consensus | Type_251_Domain + +export interface Type_251_Consensus { + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof +} + +export interface Type_251_Domain { + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof +} + +export interface CrossDomainMessage { + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Type_251 + weightTag: MessageWeightTag +} + +export const InitiateChannelParams: sts.Type = sts.struct(() => { + return { + maxOutgoingMessages: sts.number(), + } +}) + +export interface InitiateChannelParams { + maxOutgoingMessages: number +} + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), + } +}) + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export const Percent = sts.number() + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +export type Percent = number + +export const DomainId = sts.number() + +export const FraudProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } +}) + +export const FraudProofVariant: sts.Type = sts.closedEnum(() => { + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + bundleWithProof: OpaqueBundleWithProof, + } +}) + +export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } +}) + +export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface SuccessfulBundlesProof { + trieNodes: Bytes[] +} + +export interface OpaqueBundleWithProof { + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof +} + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export type PotOutput = Bytes + +export interface ValidBundleProof { + bundleWithProof: OpaqueBundleWithProof +} + +export const InvalidTransfersProof: sts.Type = sts.struct(() => { + return { + storageProof: StorageProof, + } +}) + +export interface InvalidTransfersProof { + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + executionProof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } +}) + +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, + } +}) + +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DomainChainsAllowlistUpdateStorageProof { + trieNodes: Bytes[] +} + +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface ConsensusTransactionByteFeeProof { + trieNodes: Bytes[] +} + +export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DynamicCostOfStorageProof { + trieNodes: Bytes[] +} + +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), + } +}) + +export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DomainRuntimeCodeProof { + trieNodes: Bytes[] +} + +export const BlockDigestProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface BlockDigestProof { + trieNodes: Bytes[] +} + +export interface MaybeDomainRuntimeUpgradedProof { + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) +} + +export const TimestampStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface TimestampStorageProof { + trieNodes: Bytes[] +} + +export interface DomainInherentExtrinsicDataProof { + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof +} + +export const BlockRandomnessProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface BlockRandomnessProof { + trieNodes: Bytes[] +} + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + digestStorageProof: StorageProof +} + +export const InvalidBundlesProof: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } +}) + +export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } +}) + +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic + +export interface InvalidBundlesProofData_Bundle { + __kind: 'Bundle' + value: OpaqueBundleWithProof +} + +export interface InvalidBundlesProofData_BundleAndExecution { + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof +} + +export interface InvalidBundlesProofData_Extrinsic { + __kind: 'Extrinsic' + value: StorageProof +} + +export interface InvalidBundlesProof { + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + storageProof: StorageProof +} + +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle + +export interface FraudProofVariant_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProofVariant_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesProof +} + +export interface FraudProofVariant_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProofVariant_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProofVariant_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProofVariant_InvalidTransfers { + __kind: 'InvalidTransfers' + value: InvalidTransfersProof +} + +export interface FraudProofVariant_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } +}) + +export interface DomainRuntimeCodeAt { + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof +} + +export interface FraudProof { + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export const PotOutput = sts.bytes() + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export const OriginCaller: sts.Type = sts.closedEnum(() => { + return { + Void: Void, + system: RawOrigin, + } +}) + +export const RawOrigin: sts.Type = sts.closedEnum(() => { + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } +}) + +export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed + +export interface RawOrigin_None { + __kind: 'None' +} + +export interface RawOrigin_Root { + __kind: 'Root' +} + +export interface RawOrigin_Signed { + __kind: 'Signed' + value: AccountId32 +} + +export const Void: sts.Type = sts.closedEnum(() => { + return { + } +}) + +export type Void = never + +export type OriginCaller = OriginCaller_Void | OriginCaller_system + +export interface OriginCaller_Void { + __kind: 'Void' + value: Void +} + +export interface OriginCaller_system { + __kind: 'system' + value: RawOrigin +} + +export const Call: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const VestingCall: sts.Type = sts.closedEnum(() => { + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer + +export interface VestingCall_claim { + __kind: 'claim' +} + +export interface VestingCall_claim_for { + __kind: 'claim_for' + dest: MultiAddress +} + +export interface VestingCall_update_vesting_schedules { + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] +} + +export interface VestingCall_vested_transfer { + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const UtilityCall: sts.Type = sts.closedEnum(() => { + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight + +/** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + */ +export interface UtilityCall_as_derivative { + __kind: 'as_derivative' + index: number + call: Call +} + +/** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + */ +export interface UtilityCall_batch { + __kind: 'batch' + calls: Call[] +} + +/** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ +export interface UtilityCall_batch_all { + __kind: 'batch_all' + calls: Call[] +} + +/** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + */ +export interface UtilityCall_dispatch_as { + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call +} + +/** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ +export interface UtilityCall_force_batch { + __kind: 'force_batch' + calls: Call[] +} + +/** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + */ +export interface UtilityCall_with_weight { + __kind: 'with_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TransporterCall: sts.Type = sts.closedEnum(() => { + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } +}) + +export const Location: sts.Type = sts.struct(() => { + return { + chainId: ChainId, + accountId: MultiAccountId, + } +}) + +export interface Location { + chainId: ChainId + accountId: MultiAccountId +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TransporterCall = TransporterCall_transfer + +/** + * Initiates transfer of funds from account on src_chain to account on dst_chain. + * Funds are burned on src_chain first and are minted on dst_chain using Messenger. + */ +export interface TransporterCall_transfer { + __kind: 'transfer' + dstLocation: Location + amount: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const TimestampCall: sts.Type = sts.closedEnum(() => { + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type TimestampCall = TimestampCall_set + +/** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + */ +export interface TimestampCall_set { + __kind: 'set' + now: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SystemCall: sts.Type = sts.closedEnum(() => { + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage + +/** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + */ +export interface SystemCall_apply_authorized_upgrade { + __kind: 'apply_authorized_upgrade' + code: Bytes +} + +/** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + */ +export interface SystemCall_authorize_upgrade { + __kind: 'authorize_upgrade' + codeHash: H256 +} + +/** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + */ +export interface SystemCall_authorize_upgrade_without_checks { + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 +} + +/** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + */ +export interface SystemCall_kill_prefix { + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number +} + +/** + * Kill some items from storage. + */ +export interface SystemCall_kill_storage { + __kind: 'kill_storage' + keys: Bytes[] +} + +/** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + */ +export interface SystemCall_remark { + __kind: 'remark' + remark: Bytes +} + +/** + * Make some on-chain remark and emit event. + */ +export interface SystemCall_remark_with_event { + __kind: 'remark_with_event' + remark: Bytes +} + +/** + * Set the new runtime code. + */ +export interface SystemCall_set_code { + __kind: 'set_code' + code: Bytes +} + +/** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + */ +export interface SystemCall_set_code_without_checks { + __kind: 'set_code_without_checks' + code: Bytes +} + +/** + * Set the number of pages in the WebAssembly environment's heap. + */ +export interface SystemCall_set_heap_pages { + __kind: 'set_heap_pages' + pages: bigint +} + +/** + * Set some items of storage. + */ +export interface SystemCall_set_storage { + __kind: 'set_storage' + items: [Bytes, Bytes][] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SudoCall: sts.Type = sts.closedEnum(() => { + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight + +/** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + */ +export interface SudoCall_remove_key { + __kind: 'remove_key' +} + +/** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + */ +export interface SudoCall_set_key { + __kind: 'set_key' + new: MultiAddress +} + +/** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + */ +export interface SudoCall_sudo { + __kind: 'sudo' + call: Call +} + +/** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + */ +export interface SudoCall_sudo_as { + __kind: 'sudo_as' + who: MultiAddress + call: Call +} + +/** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + */ +export interface SudoCall_sudo_unchecked_weight { + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const SubspaceCall: sts.Type = sts.closedEnum(() => { + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } +}) + +export const SignedVote: sts.Type = sts.struct(() => { + return { + vote: Vote, + signature: Signature, + } +}) + +export const Signature = sts.bytes() + +export const Vote: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } +}) + +export const Solution: sts.Type = sts.struct(() => { + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } +}) + +export const PosProof = sts.bytes() + +export const ChunkWitness = sts.bytes() + +export const Scalar: sts.Type = sts.struct(() => { + return { + inner: sts.bytes(), + } +}) + +export interface Scalar { + inner: Bytes +} + +export const RecordWitness = sts.bytes() + +export const RecordCommitment = sts.bytes() + +export const PieceOffset = sts.number() + +export const HistorySize = sts.bigint() + +export interface Solution { + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof +} + +export type PosProof = Bytes + +export type ChunkWitness = Bytes + +export type RecordWitness = Bytes + +export type RecordCommitment = Bytes + +export type PieceOffset = number + +export type HistorySize = bigint + +export const Slot = sts.bigint() + +export type Vote = Vote_V0 + +export interface Vote_V0 { + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput +} + +export type Slot = bigint + +export interface SignedVote { + vote: Vote + signature: Signature +} + +export type Signature = Bytes + +export const EquivocationProof: sts.Type = sts.struct(() => { + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } +}) + +export const Header: sts.Type
= sts.struct(() => { + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } +}) + +export const Digest: sts.Type = sts.struct(() => { + return { + logs: sts.array(() => DigestItem), + } +}) + +export const DigestItem: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + +export interface DigestItem_Consensus { + __kind: 'Consensus' + value: [Bytes, Bytes] +} + +export interface DigestItem_Other { + __kind: 'Other' + value: Bytes +} + +export interface DigestItem_PreRuntime { + __kind: 'PreRuntime' + value: [Bytes, Bytes] +} + +export interface DigestItem_RuntimeEnvironmentUpdated { + __kind: 'RuntimeEnvironmentUpdated' +} + +export interface DigestItem_Seal { + __kind: 'Seal' + value: [Bytes, Bytes] +} + +export interface Digest { + logs: DigestItem[] +} + +export interface Header { + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest +} + +export interface EquivocationProof { + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header +} + +export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } +}) + +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange + +export interface EnableRewardsAt_Height { + __kind: 'Height' + value?: (number | undefined) +} + +export interface EnableRewardsAt_Manually { + __kind: 'Manually' +} + +export interface EnableRewardsAt_SolutionRange { + __kind: 'SolutionRange' + value: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote + +/** + * Enable storage access for all users. + */ +export interface SubspaceCall_enable_authoring_by_anyone { + __kind: 'enable_authoring_by_anyone' +} + +/** + * Enable rewards for blocks and votes at specified block height. + */ +export interface SubspaceCall_enable_rewards_at { + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt +} + +/** + * Enable solution range adjustment after every era. + * Note: No effect on the solution range for the current era + */ +export interface SubspaceCall_enable_solution_range_adjustment { + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) +} + +/** + * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. + * If valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only block authors will + * call it (validated in `ValidateUnsigned`), as such if the block author is defined it + * will be defined as the equivocation reporter. + */ +export interface SubspaceCall_report_equivocation { + __kind: 'report_equivocation' + equivocationProof: EquivocationProof +} + +/** + * Submit new segment header to the blockchain. This is an inherent extrinsic and part of + * the Subspace consensus logic. + */ +export interface SubspaceCall_store_segment_headers { + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] +} + +/** + * Farmer vote, currently only used for extra rewards to farmers. + */ +export interface SubspaceCall_vote { + __kind: 'vote' + signedVote: SignedVote +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls + +/** + * Enable or disable balance transfers for all users. + */ +export interface RuntimeConfigsCall_set_enable_balance_transfers { + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean +} + +/** + * Change enable domains state. + */ +export interface RuntimeConfigsCall_set_enable_domains { + __kind: 'set_enable_domains' + enableDomains: boolean +} + +/** + * Enable or disable dynamic cost of storage. + */ +export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean +} + +/** + * Enable or disable calls from non-root users. + */ +export interface RuntimeConfigsCall_set_enable_non_root_calls { + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const RewardsCall: sts.Type = sts.closedEnum(() => { + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } +}) + +export const RewardPoint: sts.Type = sts.struct(() => { + return { + block: sts.number(), + subsidy: sts.bigint(), + } +}) + +export interface RewardPoint { + block: number + subsidy: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type RewardsCall = RewardsCall_update_issuance_params + +/** + * Update dynamic issuance parameters + */ +export interface RewardsCall_update_issuance_params { + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const MessengerCall: sts.Type = sts.closedEnum(() => { + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } +}) + +export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } +}) + +export interface DomainAllowlistUpdates { + allowChains: ChainId[] + removeChains: ChainId[] +} + +export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { + return { + Add: ChainId, + Remove: ChainId, + } +}) + +export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove + +export interface ChainAllowlistUpdate_Add { + __kind: 'Add' + value: ChainId +} + +export interface ChainAllowlistUpdate_Remove { + __kind: 'Remove' + value: ChainId +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist + +/** + * An open channel is closed with a foreign chain. + * Channel is set to Closed and do not accept or receive any messages. + */ +export interface MessengerCall_close_channel { + __kind: 'close_channel' + chainId: ChainId + channelId: bigint +} + +/** + * A new Channel is initiated with a foreign chain. + * Next Channel ID is used to assign the new channel. + * Channel is set to initiated and do not accept or receive any messages. + */ +export interface MessengerCall_initiate_channel { + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams +} + +/** + * A call to initiate chain allowlist update on domains + */ +export interface MessengerCall_initiate_domain_update_chain_allowlist { + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate +} + +/** + * Receives an Inbox message that needs to be validated and processed. + */ +export interface MessengerCall_relay_message { + __kind: 'relay_message' + msg: CrossDomainMessage +} + +/** + * Receives a response from the dst_chain for a message in Outbox. + */ +export interface MessengerCall_relay_message_response { + __kind: 'relay_message_response' + msg: CrossDomainMessage +} + +/** + * A call to update consensus chain allow list. + */ +export interface MessengerCall_update_consensus_chain_allowlist { + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate +} + +/** + * An inherent call to update allowlist for domain. + */ +export interface MessengerCall_update_domain_allowlist { + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const DomainsCall: sts.Type = sts.closedEnum(() => { + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + set_permissioned_action_allowed_by: sts.enumStruct({ + permissionedActionAllowedBy: PermissionedActionAllowedBy, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_nominator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake + +export interface DomainsCall_deregister_operator { + __kind: 'deregister_operator' + operatorId: bigint +} + +/** + * Force staking epoch transition for a given domain + */ +export interface DomainsCall_force_staking_epoch_transition { + __kind: 'force_staking_epoch_transition' + domainId: DomainId +} + +export interface DomainsCall_instantiate_domain { + __kind: 'instantiate_domain' + domainConfig: DomainConfig +} + +export interface DomainsCall_nominate_operator { + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint +} + +export interface DomainsCall_register_domain_runtime { + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes +} + +export interface DomainsCall_register_operator { + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig + signingKeyProofOfOwnership: Bytes +} + +/** + * Update permissioned action allowed by storage by Sudo. + */ +export interface DomainsCall_set_permissioned_action_allowed_by { + __kind: 'set_permissioned_action_allowed_by' + permissionedActionAllowedBy: PermissionedActionAllowedBy +} + +export interface DomainsCall_submit_bundle { + __kind: 'submit_bundle' + opaqueBundle: Bundle +} + +export interface DomainsCall_submit_fraud_proof { + __kind: 'submit_fraud_proof' + fraudProof: FraudProof +} + +/** + * Unlocks the first withdrawal given the unlocking period is complete. + * Even if rest of the withdrawals are out of unlocking period, nominator + * should call this extrinsic to unlock each withdrawal + */ +export interface DomainsCall_unlock_funds { + __kind: 'unlock_funds' + operatorId: bigint +} + +/** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ +export interface DomainsCall_unlock_nominator { + __kind: 'unlock_nominator' + operatorId: bigint +} + +/** + * Extrinsic to update domain's operator allow list. + * Note: + * - If the previous allowed list is set to specific operators and new allow list is set + * to `Anyone`, then domain will become permissioned to open for all operators. + * - If the previous allowed list is set to `Anyone` or specific operators and the new + * allow list is set to specific operators, then all the registered not allowed operators + * will continue to operate until they de-register themselves. + */ +export interface DomainsCall_update_domain_operator_allow_list { + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList +} + +export interface DomainsCall_upgrade_domain_runtime { + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes +} + +export interface DomainsCall_withdraw_stake { + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint +} + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export const BalancesCall: sts.Type = sts.closedEnum(() => { + return { + force_adjust_total_issuance: sts.enumStruct({ + direction: AdjustmentDirection, + delta: sts.bigint(), + }), + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } +}) + +/** + * Contains a variant per dispatchable extrinsic that this pallet has. + */ +export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts + +/** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ +export interface BalancesCall_force_adjust_total_issuance { + __kind: 'force_adjust_total_issuance' + direction: AdjustmentDirection + delta: bigint +} + +/** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + */ +export interface BalancesCall_force_set_balance { + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint +} + +/** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + */ +export interface BalancesCall_force_transfer { + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint +} + +/** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + */ +export interface BalancesCall_force_unreserve { + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint +} + +/** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + */ +export interface BalancesCall_transfer_all { + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean +} + +/** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + */ +export interface BalancesCall_transfer_allow_death { + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint +} + +/** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + */ +export interface BalancesCall_transfer_keep_alive { + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint +} + +/** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + */ +export interface BalancesCall_upgrade_accounts { + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase + +export interface AdjustmentDirection_Decrease { + __kind: 'Decrease' +} + +export interface AdjustmentDirection_Increase { + __kind: 'Increase' +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + +export interface Call_Balances { + __kind: 'Balances' + value: BalancesCall +} + +export interface Call_Domains { + __kind: 'Domains' + value: DomainsCall +} + +export interface Call_Messenger { + __kind: 'Messenger' + value: MessengerCall +} + +export interface Call_Rewards { + __kind: 'Rewards' + value: RewardsCall +} + +export interface Call_RuntimeConfigs { + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall +} + +export interface Call_Subspace { + __kind: 'Subspace' + value: SubspaceCall +} + +export interface Call_Sudo { + __kind: 'Sudo' + value: SudoCall +} + +export interface Call_System { + __kind: 'System' + value: SystemCall +} + +export interface Call_Timestamp { + __kind: 'Timestamp' + value: TimestampCall +} + +export interface Call_Transporter { + __kind: 'Transporter' + value: TransporterCall +} + +export interface Call_Utility { + __kind: 'Utility' + value: UtilityCall +} + +export interface Call_Vesting { + __kind: 'Vesting' + value: VestingCall +} + +export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } +}) + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } +}) + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } +}) diff --git a/indexers/consensus-squid/src/types/vesting/calls.ts b/indexers/consensus-squid/src/types/vesting/calls.ts new file mode 100644 index 000000000..91b5a501a --- /dev/null +++ b/indexers/consensus-squid/src/types/vesting/calls.ts @@ -0,0 +1,54 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const claim = { + name: 'Vesting.claim', + /** + * See [`Pallet::claim`]. + */ + v0: new CallType( + 'Vesting.claim', + sts.unit() + ), +} + +export const vestedTransfer = { + name: 'Vesting.vested_transfer', + /** + * See [`Pallet::vested_transfer`]. + */ + v0: new CallType( + 'Vesting.vested_transfer', + sts.struct({ + dest: v0.MultiAddress, + schedule: v0.VestingSchedule, + }) + ), +} + +export const updateVestingSchedules = { + name: 'Vesting.update_vesting_schedules', + /** + * See [`Pallet::update_vesting_schedules`]. + */ + v0: new CallType( + 'Vesting.update_vesting_schedules', + sts.struct({ + who: v0.MultiAddress, + vestingSchedules: sts.array(() => v0.VestingSchedule), + }) + ), +} + +export const claimFor = { + name: 'Vesting.claim_for', + /** + * See [`Pallet::claim_for`]. + */ + v0: new CallType( + 'Vesting.claim_for', + sts.struct({ + dest: v0.MultiAddress, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/vesting/constants.ts b/indexers/consensus-squid/src/types/vesting/constants.ts new file mode 100644 index 000000000..4c7cbb2b9 --- /dev/null +++ b/indexers/consensus-squid/src/types/vesting/constants.ts @@ -0,0 +1,11 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const minVestedTransfer = { + /** + * The minimum amount transferred to call `vested_transfer`. + */ + v0: new ConstantType( + 'Vesting.MinVestedTransfer', + sts.bigint() + ), +} diff --git a/indexers/consensus-squid/src/types/vesting/events.ts b/indexers/consensus-squid/src/types/vesting/events.ts new file mode 100644 index 000000000..02d40ad04 --- /dev/null +++ b/indexers/consensus-squid/src/types/vesting/events.ts @@ -0,0 +1,44 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const vestingScheduleAdded = { + name: 'Vesting.VestingScheduleAdded', + /** + * Added new vesting schedule. + */ + v0: new EventType( + 'Vesting.VestingScheduleAdded', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + vestingSchedule: v0.VestingSchedule, + }) + ), +} + +export const claimed = { + name: 'Vesting.Claimed', + /** + * Claimed vesting. + */ + v0: new EventType( + 'Vesting.Claimed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const vestingSchedulesUpdated = { + name: 'Vesting.VestingSchedulesUpdated', + /** + * Updated vesting schedules. + */ + v0: new EventType( + 'Vesting.VestingSchedulesUpdated', + sts.struct({ + who: v0.AccountId32, + }) + ), +} diff --git a/indexers/consensus-squid/src/types/vesting/storage.ts b/indexers/consensus-squid/src/types/vesting/storage.ts new file mode 100644 index 000000000..847b2f926 --- /dev/null +++ b/indexers/consensus-squid/src/types/vesting/storage.ts @@ -0,0 +1,31 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const vestingSchedules = { + /** + * Vesting schedules of an account. + * + * VestingSchedules: map AccountId => Vec + */ + v0: new StorageType('Vesting.VestingSchedules', 'Default', [v0.AccountId32], sts.array(() => v0.VestingSchedule)) as VestingSchedulesV0, +} + +/** + * Vesting schedules of an account. + * + * VestingSchedules: map AccountId => Vec + */ +export interface VestingSchedulesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.VestingSchedule[] + get(block: Block, key: v0.AccountId32): Promise<(v0.VestingSchedule[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> +} diff --git a/indexers/consensus-squid/typegen.json b/indexers/consensus-squid/typegen.json new file mode 100644 index 000000000..86cd2c6a7 --- /dev/null +++ b/indexers/consensus-squid/typegen.json @@ -0,0 +1,8 @@ +{ + "outDir": "src/types", + "specVersions": "gemini3h.jsonl", + "constants": true, + "events": true, + "calls": true, + "storage": true +} From 24d786d1d8abe1cafd6fe0c67e19f3a96229d1b1 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:15:42 -0400 Subject: [PATCH 03/42] improve processor --- indexers/consensus-squid/src/processor.ts | 71 +++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 indexers/consensus-squid/src/processor.ts diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts new file mode 100644 index 000000000..45475b085 --- /dev/null +++ b/indexers/consensus-squid/src/processor.ts @@ -0,0 +1,71 @@ +import { + BlockHeader, + DataHandlerContext, + SubstrateBatchProcessor, + SubstrateBatchProcessorFields, + Call as _Call, + Event as _Event, + Extrinsic as _Extrinsic, +} from "@subsquid/substrate-processor"; +import { assertNotNull } from "@subsquid/util-internal"; + +export const processor = new SubstrateBatchProcessor() + .setGateway( + assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") + ) + .setRpcEndpoint({ + url: assertNotNull( + process.env.RPC_CONSENSUS_HTTP, + "No RPC endpoint supplied" + ), + // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source + rateLimit: 10, + }) + .setBlockRange({ + from: 0, + }) + .addCall({ + name: ['*'], + events: true, + extrinsic: true, + }) + .addEvent({ + name: ['*']], + call: true, + extrinsic: true, + }) + .setFields({ + block: { + height: true, + hash: true, + timestamp: true, + }, + extrinsic: { + index: true, + version: true, + fee: true, + success: true, + hash: true, + }, + call: { + address: true, + name: true, + args: true, + origin: true, + }, + event: { + name: true, + args: true, + }, + }); + +export type Fields = SubstrateBatchProcessorFields; +export type Block = BlockHeader; +export type Event = _Event; +export type Call = _Call; +export type Extrinsic = _Extrinsic; +export type ProcessorContext = DataHandlerContext; +export type Ctx = ProcessorContext; +export type CtxBlock = Ctx["blocks"][0]; +export type CtxExtrinsic = CtxBlock["extrinsics"][0]; +export type CtxEvent = CtxExtrinsic["events"][0]; From eeae20cf937eea61daf2cdb6303343cb7dd62040 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:49:48 -0400 Subject: [PATCH 04/42] add schema and storage --- indexers/consensus-squid/schema.graphql | 318 ++++-------------- indexers/consensus-squid/src/blocks/index.ts | 20 ++ indexers/consensus-squid/src/events/index.ts | 29 ++ .../consensus-squid/src/extrinsics/index.ts | 29 ++ indexers/consensus-squid/src/model/index.ts | 1 + indexers/consensus-squid/src/processor.ts | 4 +- .../consensus-squid/src/storage/account.ts | 35 ++ indexers/consensus-squid/src/storage/block.ts | 40 +++ indexers/consensus-squid/src/storage/call.ts | 40 +++ indexers/consensus-squid/src/storage/event.ts | 39 +++ .../consensus-squid/src/storage/extrinsic.ts | 44 +++ indexers/consensus-squid/src/storage/log.ts | 33 ++ indexers/consensus-squid/src/utils/cache.ts | 131 ++++++++ indexers/consensus-squid/src/utils/index.ts | 61 ++++ 14 files changed, 562 insertions(+), 262 deletions(-) create mode 100644 indexers/consensus-squid/src/blocks/index.ts create mode 100644 indexers/consensus-squid/src/events/index.ts create mode 100644 indexers/consensus-squid/src/extrinsics/index.ts create mode 100644 indexers/consensus-squid/src/model/index.ts create mode 100644 indexers/consensus-squid/src/storage/account.ts create mode 100644 indexers/consensus-squid/src/storage/block.ts create mode 100644 indexers/consensus-squid/src/storage/call.ts create mode 100644 indexers/consensus-squid/src/storage/event.ts create mode 100644 indexers/consensus-squid/src/storage/extrinsic.ts create mode 100644 indexers/consensus-squid/src/storage/log.ts create mode 100644 indexers/consensus-squid/src/utils/cache.ts create mode 100644 indexers/consensus-squid/src/utils/index.ts diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index 08401e04c..d9cdfdd15 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -1,295 +1,93 @@ -enum DomainRuntime { - EVM - AutoId -} - -type Domain @entity { - id: ID! @index - sortId: Int! @index - accountId: String! @index - name: String! @index - runtimeId: Int! @index - runtime: DomainRuntime! @index - runtimeInfo: String! - completedEpoch: Int! @index - lastDomainBlockNumber: Int! @index - totalDeposits: BigInt! - totalTaxCollected: BigInt! - totalRewardsCollected: BigInt! - totalTransfersIn: BigInt! - transfersInCount: Int! - totalTransfersOut: BigInt! - transfersOutCount: Int! - totalRejectedTransfersClaimed: BigInt! - rejectedTransfersClaimedCount: Int! - totalTransfersRejected: BigInt! - transfersRejectedCount: Int! - totalVolume: BigInt! @index - totalConsensusStorageFee: BigInt! - totalDomainExecutionFee: BigInt! - totalBurnedBalance: BigInt! - currentTotalStake: BigInt! - currentStorageFeeDeposit: BigInt! - bundleCount: Int! - lastBundleAt: Int! - createdAt: Int! @index - updatedAt: Int! @index -} - type Account @entity { id: ID! @index - totalDeposits: BigInt! - totalTaxCollected: BigInt! - createdAt: Int! @index - updatedAt: Int! @index -} - -enum OperatorStatus { - PENDING - REGISTERED - DEREGISTERED - READY_TO_UNLOCK - SLASHED -} - -type Operator @entity { - id: ID! @index - sortId: Int! @index - accountId: String! @index - domainId: String! @index - signingKey: String! @index - minimumNominatorStake: BigInt! - nominationTax: Int! - name: String! @index - description: String! - icon: String! - banner: String! - website: String! - websiteVerified: Boolean! - email: String! - emailVerified: Boolean! - discord: String! - github: String! - twitter: String! - currentTotalStake: BigInt! - currentStorageFeeDeposit: BigInt! - currentEpochRewards: BigInt! - currentTotalShares: BigInt! - rawStatus: String! - totalDeposits: BigInt! - totalTaxCollected: BigInt! - totalRewardsCollected: BigInt! - totalTransfersIn: BigInt! - transfersInCount: Int! - totalTransfersOut: BigInt! - transfersOutCount: Int! - totalRejectedTransfersClaimed: BigInt! - rejectedTransfersClaimedCount: Int! - totalTransfersRejected: BigInt! - transfersRejectedCount: Int! - totalVolume: BigInt! @index - totalConsensusStorageFee: BigInt! - totalDomainExecutionFee: BigInt! - totalBurnedBalance: BigInt! - activeEpochCount: Int! - bundleCount: Int! - status: OperatorStatus! @index - lastBundleAt: Int! + nonce: BigInt! + free: BigInt! + reserved: BigInt! + total: BigInt @index createdAt: Int! @index updatedAt: Int! @index } -type DomainBlock @entity { +type Block @entity { id: ID! @index - domainId: String! @index - blockNumber: Int! @index - blockHash: String! @index - extrinsicRoot: String! - consensusBlockNumber: Int! @index - consensusBlockHash: String! @index + height: BigInt! @index timestamp: DateTime! @index - createdAt: Int! @index - updatedAt: Int! @index -} - -type Bundle @entity { - id: ID! @index - domainId: String! @index - domainBlockId: String! @index - domainBlockNumber: Int! @index - domainBlockHash: String! - domainBlockExtrinsicRoot: String! - consensusBlockNumber: Int! @index - consensusBlockHash: String! @index - totalTransfersIn: BigInt! - transfersInCount: Int! - totalTransfersOut: BigInt! - transfersOutCount: Int! - totalRejectedTransfersClaimed: BigInt! - rejectedTransfersClaimedCount: Int! - totalTransfersRejected: BigInt! - transfersRejectedCount: Int! - totalVolume: BigInt! @index - consensusStorageFee: BigInt! - domainExecutionFee: BigInt! - burnedBalance: BigInt! -} - -type BundleAuthor @entity { - id: ID! @index - domainId: String! @index + hash: String! @index + parentHash: String! + specId: String! + stateRoot: String! + extrinsicsRoot: String! + spacePledged: BigInt! + blockchainSize: BigInt! + extrinsicsCount: Int! + eventsCount: Int! accountId: String! @index - operatorId: String! @index - bundleId: String! @index - domainBlockId: String! @index -} - -enum NominatorStatus { - PENDING - STAKING - DEREGISTERED - READY_TO_UNLOCK - SLASHED } -type Nominator @entity { +type ExtrinsicModuleName @entity { id: ID! @index - accountId: String! @index - domainId: String! @index - operatorId: String! @index - knownShares: BigInt! - knownStorageFeeDeposit: BigInt! - pendingAmount: BigInt! - pendingStorageFeeDeposit: BigInt! - pendingEffectiveDomainEpoch: Int! - totalWithdrawalAmounts: BigInt! - totalStorageFeeRefund: BigInt! - unlockAtConfirmedDomainBlockNumber: [Int!]! - pendingShares: BigInt! - pendingStorageFeeRefund: BigInt! - totalDeposits: BigInt! - status: NominatorStatus! @index + name: String! @index createdAt: Int! @index - updatedAt: Int! @index } -enum DepositStatus { - PENDING - DEPOSITED -} - -type Deposit @entity { +type Extrinsic @entity { id: ID! @index + hash: String! @index + indexInBlock: Int! + nonce: BigInt! + name: String! @index accountId: String! @index - domainId: String! @index - operatorId: String! @index - nominatorId: String! @index - amount: BigInt! - storageFeeDeposit: BigInt! - status: DepositStatus! @index + signature: String! @index + error: String! + tip: BigInt! + fee: BigInt! + success: Boolean! + blockId: String! @index + pos: Int! timestamp: DateTime! @index - extrinsicHash: String! @index - epochDepositedAt: Int! @index - domainBlockNumberDepositedAt: Int! @index + args: String! createdAt: Int! @index - stakedAt: Int! @index - updatedAt: Int! @index } -enum WithdrawalStatus { - PENDING - READY - WITHDRAW -} - -type Withdrawal @entity { +type EventModuleName @entity { id: ID! @index - accountId: String! @index - domainId: String! @index - operatorId: String! @index - nominatorId: String! @index - shares: BigInt! - status: WithdrawalStatus! @index - timestamp: DateTime! @index - withdrawExtrinsicHash: String! @index - unlockExtrinsicHash: String! @index - epochWithdrawalRequestedAt: Int! @index - domainBlockNumberWithdrawalRequestedAt: Int! @index + name: String! @index createdAt: Int! @index - readyAt: Int! @index - unlockedAt: Int! @index - updatedAt: Int! @index -} - -type OperatorUnlockedFunds @entity { - id: ID! @index - blockNumber: Int! @index - operator: Operator! - nominator: Nominator! - nominatorAccount: String! - timestamp: DateTime! @index - extrinsicHash: String! @index - amount: BigInt! -} - -type RewardEvent @entity { - id: ID! @index - domainId: String! @index - operatorId: String! @index - amount: BigInt! - timestamp: DateTime! @index - blockNumber: Int! @index - extrinsicHash: String! @index } -type Stats @entity { +type Event @entity { id: ID! @index - blockNumber: Int! @index - totalStaked: BigInt! - totalFees: BigInt! - totalDeposits: BigInt! - totalWithdrawals: BigInt! - allTimeHighStaked: BigInt! - domainsCount: Int! - operatorsCount: Int! - activeOperatorsCount: Int! - slashedOperatorsCount: Int! - nominatorsCount: Int! - depositsCount: Int! - withdrawalsCount: Int! + indexInBlock: Int! + name: String! @index timestamp: DateTime! @index + phase: String! + pos: Int! + args: String! + blockId: String! @index + extrinsicId: String! @index + callId: String! @index + createdAt: Int! @index } -type StatsPerDomain @entity { +type Call @entity { id: ID! @index - domainId: String! @index - blockNumber: Int! @index - totalStaked: BigInt! - totalFees: BigInt! - totalDeposits: BigInt! - totalWithdrawals: BigInt! - allTimeHighStaked: BigInt! - operatorsCount: Int! - activeOperatorsCount: Int! - slashedOperatorsCount: Int! - nominatorsCount: Int! - depositsCount: Int! - withdrawalsCount: Int! + name: String! @index timestamp: DateTime! @index + success: Boolean! + args: String! + blockId: String! + extrinsicId: String! + error: String! + accountId: String! @index + parent: String! + pos: Int! + createdAt: Int! @index } -type StatsPerOperator @entity { +type Log @entity { id: ID! @index - domainId: String! @index - operatorId: String! @index - blockNumber: Int! @index - totalStaked: BigInt! - totalFees: BigInt! - totalDeposits: BigInt! - totalWithdrawals: BigInt! - allTimeHighStaked: BigInt! - nominatorsCount: Int! - depositsCount: Int! - withdrawalsCount: Int! - timestamp: DateTime! @index + kind: String! @index + value: String! + blockId: String! @index + createdAt: Int! @index } diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts new file mode 100644 index 000000000..6ca078d75 --- /dev/null +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -0,0 +1,20 @@ +import type { ApiPromise } from "@autonomys/auto-utils"; +import { Store } from "@subsquid/typeorm-store"; +import { processExtrinsics } from "../extrinsics"; +import type { Ctx, CtxBlock } from "../processor"; +import { logBlock } from "../utils"; +import { Cache, load, save } from "../utils/cache"; + +export async function processBlocks(ctx: Ctx, api: ApiPromise) { + let cache: Cache = await load(ctx); + logBlock(ctx.blocks); + for (let block of ctx.blocks) { + cache = await processBlock(cache, api, block); + } + + await save(ctx, cache); +} + +async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { + return await processExtrinsics(cache, api, block, block.extrinsics); +} diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts new file mode 100644 index 000000000..b35749165 --- /dev/null +++ b/indexers/consensus-squid/src/events/index.ts @@ -0,0 +1,29 @@ +import type { ApiPromise } from "@autonomys/auto-utils"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import { events } from "../types"; +import { Cache } from "../utils/cache"; + +export async function processEvents( + cache: Cache, + api: ApiPromise, + block: CtxBlock, + extrinsic: CtxExtrinsic +) { + for (let event of extrinsic.events) { + cache = await processEvent(cache, api, block, extrinsic, event); + } + return cache; +} + +async function processEvent( + cache: Cache, + api: ApiPromise, + block: CtxBlock, + extrinsic: CtxExtrinsic, + event: CtxEvent +) { + switch (event.name) { + default: + return cache; + } +} diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts new file mode 100644 index 000000000..657ad0b59 --- /dev/null +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -0,0 +1,29 @@ +import type { ApiPromise } from "@autonomys/auto-utils"; +import { processEvents } from "../events"; +import type { CtxBlock, CtxExtrinsic } from "../processor"; +import { calls } from "../types"; +import { Cache } from "../utils/cache"; + +export async function processExtrinsics( + cache: Cache, + api: ApiPromise, + block: CtxBlock, + extrinsics: CtxExtrinsic[] +) { + for (let extrinsic of extrinsics) { + cache = await processExtrinsic(cache, api, block, extrinsic); + } + return cache; +} + +export async function processExtrinsic( + cache: Cache, + api: ApiPromise, + block: CtxBlock, + extrinsic: CtxExtrinsic +) { + switch (extrinsic.call?.name) { + default: + return await processEvents(cache, api, block, extrinsic); + } +} diff --git a/indexers/consensus-squid/src/model/index.ts b/indexers/consensus-squid/src/model/index.ts new file mode 100644 index 000000000..73bfb2881 --- /dev/null +++ b/indexers/consensus-squid/src/model/index.ts @@ -0,0 +1 @@ +export * from "./generated" diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts index 45475b085..42d48ac89 100644 --- a/indexers/consensus-squid/src/processor.ts +++ b/indexers/consensus-squid/src/processor.ts @@ -25,12 +25,12 @@ export const processor = new SubstrateBatchProcessor() from: 0, }) .addCall({ - name: ['*'], + name: ["*"], events: true, extrinsic: true, }) .addEvent({ - name: ['*']], + name: ["*"], call: true, extrinsic: true, }) diff --git a/indexers/consensus-squid/src/storage/account.ts b/indexers/consensus-squid/src/storage/account.ts new file mode 100644 index 000000000..ab5c20fd1 --- /dev/null +++ b/indexers/consensus-squid/src/storage/account.ts @@ -0,0 +1,35 @@ +import { Account } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createAccount = ( + block: CtxBlock, + address: string, + props: Partial = {} +): Account => { + const blockNumber = getBlockNumber(block); + return new Account({ + id: address, + nonce: props.nonce ?? BigInt(0), + free: props.free ?? BigInt(0), + reserved: props.reserved ?? BigInt(0), + total: props.total ?? BigInt(0), + ...props, + createdAt: blockNumber, + updatedAt: blockNumber, + }); +}; + +export const getOrCreateAccount = ( + cache: Cache, + block: CtxBlock, + address: string, + props: Partial = {} +): Account => { + const account = cache.accounts.get(address); + + if (!account) return createAccount(block, address, props); + + return account; +}; diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts new file mode 100644 index 000000000..311937c63 --- /dev/null +++ b/indexers/consensus-squid/src/storage/block.ts @@ -0,0 +1,40 @@ +import { Block } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createBlock = ( + block: CtxBlock, + props: Partial = {} +): Block => { + const blockNumber = getBlockNumber(block); + return new Block({ + id: props.id ?? "", + height: props.height ?? BigInt(0), + timestamp: props.timestamp ?? new Date(), + hash: props.hash ?? "", + parentHash: props.parentHash ?? "", + specId: props.specId ?? "", + stateRoot: props.stateRoot ?? "", + extrinsicsRoot: props.extrinsicsRoot ?? "", + spacePledged: props.spacePledged ?? BigInt(0), + blockchainSize: props.blockchainSize ?? BigInt(0), + extrinsicsCount: props.extrinsicsCount ?? 0, + eventsCount: props.eventsCount ?? 0, + accountId: props.accountId ?? "", + ...props, + }); +}; + +export const getOrCreateBlock = ( + cache: Cache, + block: CtxBlock, + props: Partial = {} +): Block => { + const blockId = props.id ?? ""; + const cachedBlock = cache.blocks.get(blockId); + + if (!cachedBlock) return createBlock(block, props); + + return cachedBlock; +}; diff --git a/indexers/consensus-squid/src/storage/call.ts b/indexers/consensus-squid/src/storage/call.ts new file mode 100644 index 000000000..991162c87 --- /dev/null +++ b/indexers/consensus-squid/src/storage/call.ts @@ -0,0 +1,40 @@ +import { Call } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createCall = ( + block: CtxBlock, + id: string, + props: Partial = {} +): Call => { + const blockNumber = getBlockNumber(block); + return new Call({ + id: id, + name: props.name ?? "", + timestamp: props.timestamp ?? new Date(), + success: props.success ?? false, + args: props.args ?? "", + blockId: props.blockId ?? "", + extrinsicId: props.extrinsicId ?? "", + error: props.error ?? "", + accountId: props.accountId ?? "", + parent: props.parent ?? "", + pos: props.pos ?? 0, + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateCall = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): Call => { + const call = cache.calls.get(id); + + if (!call) return createCall(block, id, props); + + return call; +}; diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts new file mode 100644 index 000000000..7034402dd --- /dev/null +++ b/indexers/consensus-squid/src/storage/event.ts @@ -0,0 +1,39 @@ +import { Event } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createEvent = ( + block: CtxBlock, + id: string, + props: Partial = {} +): Event => { + const blockNumber = getBlockNumber(block); + return new Event({ + id: id, + indexInBlock: props.indexInBlock ?? 0, + name: props.name ?? "", + timestamp: props.timestamp ?? new Date(), + phase: props.phase ?? "", + pos: props.pos ?? 0, + args: props.args ?? "", + blockId: props.blockId ?? "", + extrinsicId: props.extrinsicId ?? "", + callId: props.callId ?? "", + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateEvent = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): Event => { + const event = cache.events.get(id); + + if (!event) return createEvent(block, id, props); + + return event; +}; diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts new file mode 100644 index 000000000..5d8a94dd9 --- /dev/null +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -0,0 +1,44 @@ +import { Extrinsic } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createExtrinsic = ( + block: CtxBlock, + id: string, + props: Partial = {} +): Extrinsic => { + const blockNumber = getBlockNumber(block); + return new Extrinsic({ + id: id, + hash: props.hash ?? "", + indexInBlock: props.indexInBlock ?? 0, + nonce: props.nonce ?? BigInt(0), + name: props.name ?? "", + accountId: props.accountId ?? "", + signature: props.signature ?? "", + error: props.error ?? "", + tip: props.tip ?? BigInt(0), + fee: props.fee ?? BigInt(0), + success: props.success ?? false, + blockId: props.blockId ?? "", + pos: props.pos ?? 0, + timestamp: props.timestamp ?? new Date(), + args: props.args ?? "", + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateExtrinsic = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): Extrinsic => { + const extrinsic = cache.extrinsics.get(id); + + if (!extrinsic) return createExtrinsic(block, id, props); + + return extrinsic; +}; diff --git a/indexers/consensus-squid/src/storage/log.ts b/indexers/consensus-squid/src/storage/log.ts new file mode 100644 index 000000000..ceef44643 --- /dev/null +++ b/indexers/consensus-squid/src/storage/log.ts @@ -0,0 +1,33 @@ +import { Log } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createLog = ( + block: CtxBlock, + id: string, + props: Partial = {} +): Log => { + const blockNumber = getBlockNumber(block); + return new Log({ + id: id, + kind: props.kind ?? "", + value: props.value ?? "", + blockId: props.blockId ?? "", + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateLog = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): Log => { + const log = cache.logs.get(id); + + if (!log) return createLog(block, id, props); + + return log; +}; diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts new file mode 100644 index 000000000..5c1db7c20 --- /dev/null +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -0,0 +1,131 @@ +import { Store } from "@subsquid/typeorm-store"; +import { Entity } from "@subsquid/typeorm-store/src/store"; +import { + Account, + Block, + Call, + Event, + EventModuleName, + Extrinsic, + ExtrinsicModuleName, + Log, +} from "../model"; +import type { Ctx } from "../processor"; + +export type PermanentCache = { + extrinsicModuleNames: Map; + eventModuleNames: Map; + + accounts: Map; +}; + +export type TemporaryCache = { + blocks: Map; + extrinsics: Map; + events: Map; + calls: Map; + logs: Map; +}; + +type CacheManager = { + isModified: boolean; +}; + +export type Cache = PermanentCache & TemporaryCache & CacheManager; + +export const initPermanentCache: PermanentCache = { + extrinsicModuleNames: new Map(), + eventModuleNames: new Map(), + accounts: new Map(), +}; + +export const initTemporaryCache: TemporaryCache = { + blocks: new Map(), + extrinsics: new Map(), + events: new Map(), + calls: new Map(), + logs: new Map(), +}; + +export const initCacheManager: CacheManager = { + isModified: false, +}; + +export const initCache: Cache = { + ...initPermanentCache, + ...initTemporaryCache, + ...initCacheManager, +}; + +export const load = async (ctx: Ctx): Promise => { + const [extrinsicModuleNames, eventModuleNames, accounts] = await Promise.all([ + ctx.store.find(ExtrinsicModuleName), + ctx.store.find(EventModuleName), + ctx.store.find(Account), + ]); + + console.log( + "\x1b[32mLoaded in cache:\x1b[0m", + extrinsicModuleNames.length + " extrinsicModuleNames, ", + eventModuleNames.length + " eventModuleNames, ", + accounts.length + " accounts" + ); + + return { + ...initCache, + extrinsicModuleNames: new Map(extrinsicModuleNames.map((e) => [e.id, e])), + eventModuleNames: new Map(eventModuleNames.map((e) => [e.id, e])), + accounts: new Map(accounts.map((a) => [a.id, a])), + }; +}; + +const saveEntry = async ( + ctx: Ctx, + cache: Cache, + name: keyof Cache +) => { + try { + const entity = cache[name] as unknown as Map; + if (entity.size === 0) return; + + await ctx.store.save(Array.from(entity.values())); + } catch (e) { + console.error(`Failed to save ${name} with error:`, e); + } +}; + +const logEntry = (name: string, entry: Map) => + entry.size > 0 ? entry.size + " " + name + ", " : ""; + +export const save = async (ctx: Ctx, cache: Cache) => { + // If the cache is not modified, skip saving + if (!cache.isModified) return; + + let logPerm = logEntry("eventModuleNames", cache.eventModuleNames); + logPerm += logEntry("extrinsicModuleNames", cache.extrinsicModuleNames); + logPerm += logEntry("accounts", cache.accounts); + + let logTemp = logEntry("blocks", cache.blocks); + logTemp += logEntry("extrinsics", cache.extrinsics); + logTemp += logEntry("events", cache.events); + logTemp += logEntry("calls", cache.calls); + logTemp += logEntry("logs", cache.logs); + + console.log("\x1b[34mSaving in database:\x1b[0m", logPerm); + console.log(" and ", logTemp, "\n"); + + await Promise.all( + Object.keys(cache).map((k) => + !Object.keys(initCacheManager).includes(k) + ? saveEntry(ctx, cache, k as keyof Cache) + : null + ) + ); + + // Clear the cache for entries not needed for reference + cache.blocks.clear(); + cache.extrinsics.clear(); + cache.events.clear(); + cache.calls.clear(); + cache.logs.clear(); +}; diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts new file mode 100644 index 000000000..d2a6a4c32 --- /dev/null +++ b/indexers/consensus-squid/src/utils/index.ts @@ -0,0 +1,61 @@ +import { DEFAULT_SS58_FORMAT } from "@autonomys/auto-utils"; +import { codec } from "@subsquid/ss58"; +import type { Store } from "@subsquid/typeorm-store"; +import { decodeHex } from "@subsquid/util-internal-hex"; +import type { CtxBlock, ProcessorContext } from "../processor"; + +export const hexToAccount = (hex: string): string => { + try { + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)); + } catch (error) { + console.error("Failed to convert hex to account:", error); + return ""; + } +}; + +export const getCallSigner = ( + call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] +): string => { + try { + return hexToAccount((call as any).origin.value.value); + } catch (error) { + console.error("Failed to get call signer:", error); + return ""; + } +}; + +export const appendOrArray = (arr: T[] | undefined, item: T): T[] => + arr ? [...arr, item] : [item]; + +export const getBlockNumber = (block: CtxBlock): number => block.header.height; + +export const getTimestamp = (block: CtxBlock): Date => + new Date(block.header.timestamp ?? 0); + +export const domainUID = (domainId: number): string => `${domainId}`; + +export const operatorUID = (operatorId: number): string => `${operatorId}`; + +export const nominatorUID = (operatorId: number, account: string): string => + `${operatorId}-${account}`; + +export const bundleUID = ( + domainId: number | string, + domainBlockHeight: number | string, + domainBlockBundleIndex: number | string +): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}`; + +export const blockUID = ( + domainId: number | string, + blockNumber: number | string +): string => `${domainId}-${blockNumber}`; + +export const logBlock = (blocks: CtxBlock[]): void => { + const from = getBlockNumber(blocks[0]); + const to = getBlockNumber(blocks[blocks.length - 1]); + return console.log( + "\x1b[33mProcessing " + blocks.length + " blocks\x1b[0m", + "From " + from, + "to " + to + " (" + (to - from) + " blocks)" + ); +}; From 7a6f4143a9a5d08d9a6c33119289f391294299f8 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:01:06 -0400 Subject: [PATCH 05/42] improve docker, indexers and hasura local setup --- .env | 7 +- docker-compose.yml | 13 +-- indexers/consensus-squid/.env | 8 +- indexers/db/.env | 1 + indexers/db/config.yaml | 7 ++ .../db/docker-entrypoint-initdb.d/init-db.sql | 3 + indexers/db/package.json | 9 +++ indexers/db/yarn.lock | 80 +++++++++++++++++++ 8 files changed, 118 insertions(+), 10 deletions(-) create mode 100644 indexers/db/.env create mode 100644 indexers/db/config.yaml create mode 100644 indexers/db/docker-entrypoint-initdb.d/init-db.sql create mode 100644 indexers/db/package.json create mode 100644 indexers/db/yarn.lock diff --git a/.env b/.env index b1063a6d3..c08a7b9b2 100644 --- a/.env +++ b/.env @@ -1,6 +1,9 @@ -DB_NAME=squid DB_USER=postgres -DB_PASSWORD=postgres-indexer +DB_PASSWORD=postgres DB_PORT=5432 +DB_CONSENSUS=consensus +DB_LEADERBOARD=leaderboard +DB_STAKING=staking + HASURA_GRAPHQL_ADMIN_SECRET=helloworld \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 15d002fff..709a50e63 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,11 +5,11 @@ services: container_name: explorer-db image: postgres:14 environment: - POSTGRES_DB: ${DB_NAME} - POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} ports: - "${DB_PORT}:${DB_PORT}" + volumes: + - ./indexers/db/docker-entrypoint-initdb.d/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql graphql-engine: container_name: explorer-graphql @@ -18,8 +18,11 @@ services: - "db" restart: always environment: - HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_NAME} - HASURA_GRAPHQL_ENABLE_CONSOLE: "true" + HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_CONSENSUS} + HASURA_GRAPHQL_CONSENSUS_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_CONSENSUS} + HASURA_GRAPHQL_LEADERBOARD_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_LEADERBOARD} + HASURA_GRAPHQL_STAKING_DATABASE_URL: postgres://${DB_USER}:${DB_PASSWORD}@db:${DB_PORT}/${DB_STAKING} + HASURA_GRAPHQL_ENABLE_CONSOLE: "false" HASURA_GRAPHQL_DEV_MODE: "true" # HASURA_GRAPHQL_CONSOLE_ASSETS_DIR: /srv/console-assets HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET} @@ -29,4 +32,4 @@ services: - "8080:8080" command: - graphql-engine - - serve \ No newline at end of file + - serve diff --git a/indexers/consensus-squid/.env b/indexers/consensus-squid/.env index d034b96bd..32ab8209b 100644 --- a/indexers/consensus-squid/.env +++ b/indexers/consensus-squid/.env @@ -1,6 +1,8 @@ -DB_NAME=squid -DB_NAME=consensus-squid -DB_PORT=23798 +DB_URL=postgres://postgres:postgres-indexer@localhost:5432/consensus-squid + +# DB_NAME=squid +# DB_NAME=consensus-squid +# DB_PORT=23798 GQL_PORT=4350 RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws diff --git a/indexers/db/.env b/indexers/db/.env new file mode 100644 index 000000000..44e9546a8 --- /dev/null +++ b/indexers/db/.env @@ -0,0 +1 @@ +HASURA_GRAPHQL_ADMIN_SECRET=helloworld \ No newline at end of file diff --git a/indexers/db/config.yaml b/indexers/db/config.yaml new file mode 100644 index 000000000..807276733 --- /dev/null +++ b/indexers/db/config.yaml @@ -0,0 +1,7 @@ +version: 3 +endpoint: http://localhost:8080 +metadata_directory: metadata +migrations_directory: migrations +actions: + kind: synchronous + handler_webhook_baseurl: http://localhost:3000 diff --git a/indexers/db/docker-entrypoint-initdb.d/init-db.sql b/indexers/db/docker-entrypoint-initdb.d/init-db.sql new file mode 100644 index 000000000..a8697e5ab --- /dev/null +++ b/indexers/db/docker-entrypoint-initdb.d/init-db.sql @@ -0,0 +1,3 @@ +CREATE DATABASE consensus; +CREATE DATABASE leaderboard; +CREATE DATABASE staking; \ No newline at end of file diff --git a/indexers/db/package.json b/indexers/db/package.json new file mode 100644 index 000000000..dd618a032 --- /dev/null +++ b/indexers/db/package.json @@ -0,0 +1,9 @@ +{ + "name": "db", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "devDependencies": { + "hasura-cli": "2.36.2" + } +} diff --git a/indexers/db/yarn.lock b/indexers/db/yarn.lock new file mode 100644 index 000000000..2e093d5aa --- /dev/null +++ b/indexers/db/yarn.lock @@ -0,0 +1,80 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.0: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +hasura-cli@2.36.2: + version "2.36.2" + resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" + integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== + dependencies: + axios "^1.6.0" + chalk-template "^1.1.0" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== From 3687825777fe6db5713490e44377b89330051bae Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:04:45 -0400 Subject: [PATCH 06/42] update hasura metadata --- indexers/db/.gitignore | 1 + indexers/db/metadata/actions.graphql | 0 indexers/db/metadata/actions.yaml | 6 +++++ indexers/db/metadata/allow_list.yaml | 1 + indexers/db/metadata/api_limits.yaml | 1 + indexers/db/metadata/backend_configs.yaml | 1 + indexers/db/metadata/cron_triggers.yaml | 1 + .../databases/consensus/tables/tables.yaml | 1 + indexers/db/metadata/databases/databases.yaml | 27 +++++++++++++++++++ ..._account_extrinsic_failed_total_count.yaml | 3 +++ ...account_extrinsic_success_total_count.yaml | 3 +++ .../public_account_extrinsic_total_count.yaml | 3 +++ .../tables/public_account_remark_count.yaml | 3 +++ ...ount_transaction_fee_paid_total_value.yaml | 3 +++ ...account_transfer_receiver_total_count.yaml | 3 +++ ...account_transfer_receiver_total_value.yaml | 3 +++ ...c_account_transfer_sender_total_count.yaml | 3 +++ ...c_account_transfer_sender_total_value.yaml | 3 +++ .../public_farmer_block_total_count.yaml | 3 +++ .../public_farmer_block_total_value.yaml | 3 +++ ...lic_farmer_vote_and_block_total_count.yaml | 3 +++ ...lic_farmer_vote_and_block_total_value.yaml | 3 +++ .../public_farmer_vote_total_count.yaml | 3 +++ .../public_farmer_vote_total_value.yaml | 3 +++ ...public_nominator_deposits_total_count.yaml | 3 +++ ...public_nominator_deposits_total_value.yaml | 3 +++ ...lic_nominator_withdrawals_total_count.yaml | 3 +++ .../public_operator_bundle_total_count.yaml | 3 +++ .../public_operator_deposits_total_count.yaml | 3 +++ .../public_operator_deposits_total_value.yaml | 3 +++ ...blic_operator_total_rewards_collected.yaml | 3 +++ .../public_operator_total_tax_collected.yaml | 3 +++ ...blic_operator_withdrawals_total_count.yaml | 3 +++ .../tables/squid_processor_status.yaml | 8 ++++++ .../databases/leaderboard/tables/tables.yaml | 25 +++++++++++++++++ .../staking/tables/public_account.yaml | 3 +++ .../staking/tables/public_bundle.yaml | 3 +++ .../staking/tables/public_bundle_author.yaml | 3 +++ .../staking/tables/public_deposit.yaml | 3 +++ .../staking/tables/public_domain.yaml | 3 +++ .../staking/tables/public_domain_block.yaml | 3 +++ .../staking/tables/public_domain_epoch.yaml | 3 +++ .../staking/tables/public_migrations.yaml | 3 +++ .../staking/tables/public_nominator.yaml | 3 +++ .../staking/tables/public_operator.yaml | 3 +++ .../staking/tables/public_reward_event.yaml | 3 +++ .../staking/tables/public_stats.yaml | 3 +++ .../tables/public_stats_per_account.yaml | 3 +++ .../tables/public_stats_per_domain.yaml | 3 +++ .../tables/public_stats_per_nominator.yaml | 3 +++ .../tables/public_stats_per_operator.yaml | 3 +++ .../staking/tables/public_withdrawal.yaml | 3 +++ .../tables/squid_processor_status.yaml | 8 ++++++ .../databases/staking/tables/tables.yaml | 17 ++++++++++++ .../graphql_schema_introspection.yaml | 1 + indexers/db/metadata/inherited_roles.yaml | 1 + indexers/db/metadata/metrics_config.yaml | 1 + indexers/db/metadata/network.yaml | 1 + indexers/db/metadata/opentelemetry.yaml | 1 + indexers/db/metadata/query_collections.yaml | 1 + indexers/db/metadata/remote_schemas.yaml | 1 + indexers/db/metadata/rest_endpoints.yaml | 1 + indexers/db/metadata/version.yaml | 1 + indexers/leaderboard-squid/.env | 8 +++--- ...06699043-Data.js => 1724169247921-Data.js} | 4 +-- indexers/staking-squid/.env | 2 +- ...61217756-Data.js => 1724169170410-Data.js} | 4 +-- 67 files changed, 239 insertions(+), 8 deletions(-) create mode 100644 indexers/db/.gitignore create mode 100644 indexers/db/metadata/actions.graphql create mode 100644 indexers/db/metadata/actions.yaml create mode 100644 indexers/db/metadata/allow_list.yaml create mode 100644 indexers/db/metadata/api_limits.yaml create mode 100644 indexers/db/metadata/backend_configs.yaml create mode 100644 indexers/db/metadata/cron_triggers.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/tables.yaml create mode 100644 indexers/db/metadata/databases/databases.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml create mode 100644 indexers/db/metadata/databases/leaderboard/tables/tables.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_account.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_bundle.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_deposit.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_domain.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_domain_block.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_migrations.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_nominator.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_operator.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_reward_event.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_stats.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml create mode 100644 indexers/db/metadata/databases/staking/tables/tables.yaml create mode 100644 indexers/db/metadata/graphql_schema_introspection.yaml create mode 100644 indexers/db/metadata/inherited_roles.yaml create mode 100644 indexers/db/metadata/metrics_config.yaml create mode 100644 indexers/db/metadata/network.yaml create mode 100644 indexers/db/metadata/opentelemetry.yaml create mode 100644 indexers/db/metadata/query_collections.yaml create mode 100644 indexers/db/metadata/remote_schemas.yaml create mode 100644 indexers/db/metadata/rest_endpoints.yaml create mode 100644 indexers/db/metadata/version.yaml rename indexers/leaderboard-squid/db/migrations/{1723206699043-Data.js => 1724169247921-Data.js} (99%) rename indexers/staking-squid/db/migrations/{1724161217756-Data.js => 1724169170410-Data.js} (99%) diff --git a/indexers/db/.gitignore b/indexers/db/.gitignore new file mode 100644 index 000000000..30bc16279 --- /dev/null +++ b/indexers/db/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file diff --git a/indexers/db/metadata/actions.graphql b/indexers/db/metadata/actions.graphql new file mode 100644 index 000000000..e69de29bb diff --git a/indexers/db/metadata/actions.yaml b/indexers/db/metadata/actions.yaml new file mode 100644 index 000000000..1edb4c2ff --- /dev/null +++ b/indexers/db/metadata/actions.yaml @@ -0,0 +1,6 @@ +actions: [] +custom_types: + enums: [] + input_objects: [] + objects: [] + scalars: [] diff --git a/indexers/db/metadata/allow_list.yaml b/indexers/db/metadata/allow_list.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/allow_list.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/api_limits.yaml b/indexers/db/metadata/api_limits.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/api_limits.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/backend_configs.yaml b/indexers/db/metadata/backend_configs.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/backend_configs.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/cron_triggers.yaml b/indexers/db/metadata/cron_triggers.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/cron_triggers.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/databases/consensus/tables/tables.yaml b/indexers/db/metadata/databases/consensus/tables/tables.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/tables.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/databases/databases.yaml b/indexers/db/metadata/databases/databases.yaml new file mode 100644 index 000000000..d2861ed69 --- /dev/null +++ b/indexers/db/metadata/databases/databases.yaml @@ -0,0 +1,27 @@ +- name: consensus + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_CONSENSUS_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include consensus/tables/tables.yaml" +- name: leaderboard + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_LEADERBOARD_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include leaderboard/tables/tables.yaml" +- name: staking + kind: postgres + configuration: + connection_info: + database_url: + from_env: HASURA_GRAPHQL_STAKING_DATABASE_URL + isolation_level: read-committed + use_prepared_statements: false + tables: "!include staking/tables/tables.yaml" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml new file mode 100644 index 000000000..3d037f365 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_extrinsic_failed_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml new file mode 100644 index 000000000..692b389db --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_extrinsic_success_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml new file mode 100644 index 000000000..8b33bae37 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_extrinsic_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml new file mode 100644 index 000000000..d8e6046dd --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_remark_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml new file mode 100644 index 000000000..8f7eb8c70 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: account_transaction_fee_paid_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml new file mode 100644 index 000000000..a29bef3ff --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_transfer_receiver_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml new file mode 100644 index 000000000..189ffc742 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: account_transfer_receiver_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml new file mode 100644 index 000000000..77e151b64 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: account_transfer_sender_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml new file mode 100644 index 000000000..a7568a2c5 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: account_transfer_sender_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml new file mode 100644 index 000000000..dd16faa63 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_block_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml new file mode 100644 index 000000000..f6590d0e5 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_block_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml new file mode 100644 index 000000000..3186a702f --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_vote_and_block_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml new file mode 100644 index 000000000..be1cb6780 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_vote_and_block_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml new file mode 100644 index 000000000..2042c552c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_vote_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml new file mode 100644 index 000000000..76415bf34 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: farmer_vote_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml new file mode 100644 index 000000000..ea99ac775 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: nominator_deposits_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml new file mode 100644 index 000000000..e36d1cc79 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: nominator_deposits_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml new file mode 100644 index 000000000..00047a90a --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: nominator_withdrawals_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml new file mode 100644 index 000000000..847b082be --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: operator_bundle_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml new file mode 100644 index 000000000..69786be31 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: operator_deposits_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml new file mode 100644 index 000000000..c955e591b --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml @@ -0,0 +1,3 @@ +table: + name: operator_deposits_total_value + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml new file mode 100644 index 000000000..6e22456d1 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml @@ -0,0 +1,3 @@ +table: + name: operator_total_rewards_collected + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml new file mode 100644 index 000000000..1cd26fd94 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml @@ -0,0 +1,3 @@ +table: + name: operator_total_tax_collected + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml new file mode 100644 index 000000000..e6b07d935 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml @@ -0,0 +1,3 @@ +table: + name: operator_withdrawals_total_count + schema: public diff --git a/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml new file mode 100644 index 000000000..478182bd2 --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/leaderboard/tables/tables.yaml b/indexers/db/metadata/databases/leaderboard/tables/tables.yaml new file mode 100644 index 000000000..7852a401c --- /dev/null +++ b/indexers/db/metadata/databases/leaderboard/tables/tables.yaml @@ -0,0 +1,25 @@ +- "!include public_account_extrinsic_failed_total_count.yaml" +- "!include public_account_extrinsic_success_total_count.yaml" +- "!include public_account_extrinsic_total_count.yaml" +- "!include public_account_remark_count.yaml" +- "!include public_account_transaction_fee_paid_total_value.yaml" +- "!include public_account_transfer_receiver_total_count.yaml" +- "!include public_account_transfer_receiver_total_value.yaml" +- "!include public_account_transfer_sender_total_count.yaml" +- "!include public_account_transfer_sender_total_value.yaml" +- "!include public_farmer_block_total_count.yaml" +- "!include public_farmer_block_total_value.yaml" +- "!include public_farmer_vote_and_block_total_count.yaml" +- "!include public_farmer_vote_and_block_total_value.yaml" +- "!include public_farmer_vote_total_count.yaml" +- "!include public_farmer_vote_total_value.yaml" +- "!include public_nominator_deposits_total_count.yaml" +- "!include public_nominator_deposits_total_value.yaml" +- "!include public_nominator_withdrawals_total_count.yaml" +- "!include public_operator_bundle_total_count.yaml" +- "!include public_operator_deposits_total_count.yaml" +- "!include public_operator_deposits_total_value.yaml" +- "!include public_operator_total_rewards_collected.yaml" +- "!include public_operator_total_tax_collected.yaml" +- "!include public_operator_withdrawals_total_count.yaml" +- "!include squid_processor_status.yaml" diff --git a/indexers/db/metadata/databases/staking/tables/public_account.yaml b/indexers/db/metadata/databases/staking/tables/public_account.yaml new file mode 100644 index 000000000..5681f6647 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_account.yaml @@ -0,0 +1,3 @@ +table: + name: account + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml new file mode 100644 index 000000000..1de8253ad --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml @@ -0,0 +1,3 @@ +table: + name: bundle + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml new file mode 100644 index 000000000..4d8a81724 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml @@ -0,0 +1,3 @@ +table: + name: bundle_author + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml new file mode 100644 index 000000000..5f173dc07 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml @@ -0,0 +1,3 @@ +table: + name: deposit + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_domain.yaml new file mode 100644 index 000000000..6110154fe --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain.yaml @@ -0,0 +1,3 @@ +table: + name: domain + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml new file mode 100644 index 000000000..698376fc6 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml @@ -0,0 +1,3 @@ +table: + name: domain_block + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml new file mode 100644 index 000000000..487d2a79b --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml @@ -0,0 +1,3 @@ +table: + name: domain_epoch + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_migrations.yaml b/indexers/db/metadata/databases/staking/tables/public_migrations.yaml new file mode 100644 index 000000000..c1c1ca6c2 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_migrations.yaml @@ -0,0 +1,3 @@ +table: + name: migrations + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml new file mode 100644 index 000000000..e620563b7 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml @@ -0,0 +1,3 @@ +table: + name: nominator + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_operator.yaml new file mode 100644 index 000000000..f4d660b26 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_operator.yaml @@ -0,0 +1,3 @@ +table: + name: operator + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml new file mode 100644 index 000000000..78ffff9a6 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml @@ -0,0 +1,3 @@ +table: + name: reward_event + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_stats.yaml b/indexers/db/metadata/databases/staking/tables/public_stats.yaml new file mode 100644 index 000000000..373f171d1 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats.yaml @@ -0,0 +1,3 @@ +table: + name: stats + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml new file mode 100644 index 000000000..1cb833226 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml @@ -0,0 +1,3 @@ +table: + name: stats_per_account + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml new file mode 100644 index 000000000..1395b6e07 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml @@ -0,0 +1,3 @@ +table: + name: stats_per_domain + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml new file mode 100644 index 000000000..9d9e32a16 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml @@ -0,0 +1,3 @@ +table: + name: stats_per_nominator + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml new file mode 100644 index 000000000..947581cb8 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml @@ -0,0 +1,3 @@ +table: + name: stats_per_operator + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml new file mode 100644 index 000000000..431de0508 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml @@ -0,0 +1,3 @@ +table: + name: withdrawal + schema: public diff --git a/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml new file mode 100644 index 000000000..ec2690f11 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/staking/tables/tables.yaml b/indexers/db/metadata/databases/staking/tables/tables.yaml new file mode 100644 index 000000000..3e58e0c12 --- /dev/null +++ b/indexers/db/metadata/databases/staking/tables/tables.yaml @@ -0,0 +1,17 @@ +- "!include public_account.yaml" +- "!include public_bundle.yaml" +- "!include public_bundle_author.yaml" +- "!include public_deposit.yaml" +- "!include public_domain.yaml" +- "!include public_domain_block.yaml" +- "!include public_domain_epoch.yaml" +- "!include public_nominator.yaml" +- "!include public_operator.yaml" +- "!include public_reward_event.yaml" +- "!include public_stats.yaml" +- "!include public_stats_per_account.yaml" +- "!include public_stats_per_domain.yaml" +- "!include public_stats_per_nominator.yaml" +- "!include public_stats_per_operator.yaml" +- "!include public_withdrawal.yaml" +- "!include squid_processor_status.yaml" diff --git a/indexers/db/metadata/graphql_schema_introspection.yaml b/indexers/db/metadata/graphql_schema_introspection.yaml new file mode 100644 index 000000000..61a4dcac2 --- /dev/null +++ b/indexers/db/metadata/graphql_schema_introspection.yaml @@ -0,0 +1 @@ +disabled_for_roles: [] diff --git a/indexers/db/metadata/inherited_roles.yaml b/indexers/db/metadata/inherited_roles.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/inherited_roles.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/metrics_config.yaml b/indexers/db/metadata/metrics_config.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/metrics_config.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/network.yaml b/indexers/db/metadata/network.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/network.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/opentelemetry.yaml b/indexers/db/metadata/opentelemetry.yaml new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/indexers/db/metadata/opentelemetry.yaml @@ -0,0 +1 @@ +{} diff --git a/indexers/db/metadata/query_collections.yaml b/indexers/db/metadata/query_collections.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/query_collections.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/remote_schemas.yaml b/indexers/db/metadata/remote_schemas.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/remote_schemas.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/rest_endpoints.yaml b/indexers/db/metadata/rest_endpoints.yaml new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/indexers/db/metadata/rest_endpoints.yaml @@ -0,0 +1 @@ +[] diff --git a/indexers/db/metadata/version.yaml b/indexers/db/metadata/version.yaml new file mode 100644 index 000000000..0a70affa4 --- /dev/null +++ b/indexers/db/metadata/version.yaml @@ -0,0 +1 @@ +version: 3 diff --git a/indexers/leaderboard-squid/.env b/indexers/leaderboard-squid/.env index 3b0d41842..8c1e8bdf3 100644 --- a/indexers/leaderboard-squid/.env +++ b/indexers/leaderboard-squid/.env @@ -1,6 +1,8 @@ -DB_NAME=squid -DB_NAME=leaderboard-squid -DB_PORT=23798 +DB_URL=postgres://postgres:postgres@localhost:5432/leaderboard + +## Uncoment to use the db and docker from this workspaceDB_NAME=squid +# DB_NAME=leaderboard-squid +# DB_PORT=23798 GQL_PORT=4350 RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws diff --git a/indexers/leaderboard-squid/db/migrations/1723206699043-Data.js b/indexers/leaderboard-squid/db/migrations/1724169247921-Data.js similarity index 99% rename from indexers/leaderboard-squid/db/migrations/1723206699043-Data.js rename to indexers/leaderboard-squid/db/migrations/1724169247921-Data.js index d275b3dc1..4422d695f 100644 --- a/indexers/leaderboard-squid/db/migrations/1723206699043-Data.js +++ b/indexers/leaderboard-squid/db/migrations/1724169247921-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1723206699043 { - name = 'Data1723206699043' +module.exports = class Data1724169247921 { + name = 'Data1724169247921' async up(db) { await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) diff --git a/indexers/staking-squid/.env b/indexers/staking-squid/.env index 94559b7bf..50228ed2c 100644 --- a/indexers/staking-squid/.env +++ b/indexers/staking-squid/.env @@ -1,4 +1,4 @@ -DB_URL=postgres://postgres:postgres-indexer@localhost:5432/squid +DB_URL=postgres://postgres:postgres@localhost:5432/staking ## Uncoment to use the db and docker from this workspace # DB_NAME=squid diff --git a/indexers/staking-squid/db/migrations/1724161217756-Data.js b/indexers/staking-squid/db/migrations/1724169170410-Data.js similarity index 99% rename from indexers/staking-squid/db/migrations/1724161217756-Data.js rename to indexers/staking-squid/db/migrations/1724169170410-Data.js index dc3dae086..9bd49288c 100644 --- a/indexers/staking-squid/db/migrations/1724161217756-Data.js +++ b/indexers/staking-squid/db/migrations/1724169170410-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724161217756 { - name = 'Data1724161217756' +module.exports = class Data1724169170410 { + name = 'Data1724169170410' async up(db) { await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) From ac25c4f866d0e0ae9bfa10771790b83befd0a097 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:11:28 -0400 Subject: [PATCH 07/42] add all read permissions for staking user role --- .../staking/tables/public_account.yaml | 20 +++++++ .../staking/tables/public_bundle.yaml | 28 +++++++++ .../staking/tables/public_bundle_author.yaml | 14 +++++ .../staking/tables/public_deposit.yaml | 24 ++++++++ .../staking/tables/public_domain.yaml | 50 ++++++++++++++++ .../staking/tables/public_domain_block.yaml | 18 ++++++ .../staking/tables/public_domain_epoch.yaml | 21 +++++++ .../staking/tables/public_nominator.yaml | 38 ++++++++++++ .../staking/tables/public_operator.yaml | 59 +++++++++++++++++++ .../staking/tables/public_reward_event.yaml | 13 ++++ .../staking/tables/public_stats.yaml | 25 ++++++++ .../tables/public_stats_per_account.yaml | 21 +++++++ .../tables/public_stats_per_domain.yaml | 25 ++++++++ .../tables/public_stats_per_nominator.yaml | 21 +++++++ .../tables/public_stats_per_operator.yaml | 23 ++++++++ .../staking/tables/public_withdrawal.yaml | 27 +++++++++ 16 files changed, 427 insertions(+) diff --git a/indexers/db/metadata/databases/staking/tables/public_account.yaml b/indexers/db/metadata/databases/staking/tables/public_account.yaml index 5681f6647..7bb152d98 100644 --- a/indexers/db/metadata/databases/staking/tables/public_account.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_account.yaml @@ -1,3 +1,23 @@ table: name: account schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - updated_at + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - total_deposits + - total_estimated_withdrawals + - total_tax_collected + - total_withdrawals + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml index 1de8253ad..7b155acb4 100644 --- a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml @@ -1,3 +1,31 @@ table: name: bundle schema: public +select_permissions: + - role: user + permission: + columns: + - id + - consensus_block_number + - domain_block_number + - epoch + - rejected_transfers_claimed_count + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - burned_balance + - consensus_storage_fee + - domain_execution_fee + - total_rejected_transfers_claimed + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - consensus_block_hash + - domain_block_extrinsic_root + - domain_block_hash + - domain_block_id + - domain_epoch_id + - domain_id + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml index 4d8a81724..b13afc64b 100644 --- a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml @@ -1,3 +1,17 @@ table: name: bundle_author schema: public +select_permissions: + - role: user + permission: + columns: + - id + - epoch + - account_id + - bundle_id + - domain_block_id + - domain_epoch_id + - domain_id + - operator_id + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml index 5f173dc07..2b14a9415 100644 --- a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml @@ -1,3 +1,27 @@ table: name: deposit schema: public +select_permissions: + - role: user + permission: + columns: + - id + - status + - created_at + - domain_block_number_deposited_at + - epoch_deposited_at + - staked_at + - updated_at + - amount + - storage_fee_deposit + - total_amount + - total_withdrawn + - account_id + - domain_id + - extrinsic_hash + - nominator_id + - operator_id + - timestamp + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_domain.yaml index 6110154fe..b1e7c36f9 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain.yaml @@ -1,3 +1,53 @@ table: name: domain schema: public +select_permissions: + - role: user + permission: + columns: + - id + - runtime + - bundle_count + - completed_epoch + - created_at + - last_bundle_at + - last_domain_block_number + - rejected_transfers_claimed_count + - runtime_id + - sort_id + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - updated_at + - accumulated_epoch_rewards + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_epoch_duration + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - last144_epoch_duration + - last1k_epoch_duration + - last6_epochs_duration + - last_epoch_duration + - total_burned_balance + - total_consensus_storage_fee + - total_deposits + - total_domain_execution_fee + - total_estimated_withdrawals + - total_rejected_transfers_claimed + - total_rewards_collected + - total_tax_collected + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - total_withdrawals + - account_id + - name + - runtime_info + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml index 698376fc6..64a9722da 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml @@ -1,3 +1,21 @@ table: name: domain_block schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - consensus_block_number + - created_at + - epoch + - updated_at + - block_hash + - consensus_block_hash + - domain_epoch_id + - domain_id + - extrinsic_root + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml index 487d2a79b..15a2a53d0 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml @@ -1,3 +1,24 @@ table: name: domain_epoch schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_count + - block_number_end + - block_number_start + - consensus_block_number_end + - consensus_block_number_start + - created_at + - epoch + - updated_at + - epoch_duration + - consensus_block_hash_end + - consensus_block_hash_start + - domain_id + - timestamp_end + - timestamp_start + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml index e620563b7..f483551fc 100644 --- a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml @@ -1,3 +1,41 @@ table: name: nominator schema: public +select_permissions: + - role: user + permission: + columns: + - unlock_at_confirmed_domain_block_number + - id + - pending_action + - status + - active_epoch_count + - created_at + - pending_effective_domain_epoch + - total_deposits_count + - total_withdrawals_count + - updated_at + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - known_shares + - known_storage_fee_deposit + - pending_amount + - pending_shares + - pending_storage_fee_deposit + - pending_storage_fee_refund + - total_deposits + - total_estimated_withdrawals + - total_storage_fee_refund + - total_withdrawal_amounts + - total_withdrawals + - account_id + - domain_id + - operator_id + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_operator.yaml index f4d660b26..19109a69b 100644 --- a/indexers/db/metadata/databases/staking/tables/public_operator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_operator.yaml @@ -1,3 +1,62 @@ table: name: operator schema: public +select_permissions: + - role: user + permission: + columns: + - email_verified + - website_verified + - id + - pending_action + - status + - active_epoch_count + - bundle_count + - created_at + - last_bundle_at + - nomination_tax + - rejected_transfers_claimed_count + - sort_id + - transfers_in_count + - transfers_out_count + - transfers_rejected_count + - updated_at + - accumulated_epoch_rewards + - accumulated_epoch_shares + - accumulated_epoch_stake + - accumulated_epoch_storage_fee_deposit + - current_epoch_rewards + - current_share_price + - current_storage_fee_deposit + - current_total_shares + - current_total_stake + - minimum_nominator_stake + - total_burned_balance + - total_consensus_storage_fee + - total_deposits + - total_domain_execution_fee + - total_estimated_withdrawals + - total_rejected_transfers_claimed + - total_rewards_collected + - total_tax_collected + - total_transfers_in + - total_transfers_out + - total_transfers_rejected + - total_volume + - total_withdrawals + - account_id + - banner + - description + - discord + - domain_id + - email + - github + - icon + - name + - raw_status + - signing_key + - twitter + - website + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml index 78ffff9a6..e68c89681 100644 --- a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml @@ -1,3 +1,16 @@ table: name: reward_event schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - amount + - domain_id + - extrinsic_hash + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats.yaml b/indexers/db/metadata/databases/staking/tables/public_stats.yaml index 373f171d1..af5f273ba 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats.yaml @@ -1,3 +1,28 @@ table: name: stats schema: public +select_permissions: + - role: user + permission: + columns: + - id + - active_operators_count + - block_number + - deposits_count + - domains_count + - nominators_count + - operators_count + - slashed_operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml index 1cb833226..3cd482c17 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml @@ -1,3 +1,24 @@ table: name: stats_per_account schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - nominators_count + - operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_shares + - total_staked + - total_withdrawals + - account_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml index 1395b6e07..4d30180dd 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml @@ -1,3 +1,28 @@ table: name: stats_per_domain schema: public +select_permissions: + - role: user + permission: + columns: + - id + - active_operators_count + - block_number + - deposits_count + - nominators_count + - operators_count + - slashed_operators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - domain_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml index 9d9e32a16..65995333a 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml @@ -1,3 +1,24 @@ table: name: stats_per_nominator schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_shares + - total_staked + - total_withdrawals + - domain_id + - nominator_id + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml index 947581cb8..2c56aa318 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml @@ -1,3 +1,26 @@ table: name: stats_per_operator schema: public +select_permissions: + - role: user + permission: + columns: + - id + - block_number + - deposits_count + - nominators_count + - withdrawals_count + - all_time_high_share_price + - all_time_high_staked + - current_share_price + - total_deposits + - total_rewards_collected + - total_shares + - total_staked + - total_tax_collected + - total_withdrawals + - domain_id + - operator_id + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml index 431de0508..7a0734c75 100644 --- a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml @@ -1,3 +1,30 @@ table: name: withdrawal schema: public +select_permissions: + - role: user + permission: + columns: + - id + - status + - created_at + - domain_block_number_withdrawal_requested_at + - epoch_withdrawal_requested_at + - ready_at + - unlocked_at + - updated_at + - estimated_amount + - shares + - total_amount + - unlocked_amount + - unlocked_storage_fee + - account_id + - domain_id + - nominator_id + - operator_id + - unlock_extrinsic_hash + - withdraw_extrinsic_hash + - timestamp + filter: {} + allow_aggregations: true + comment: "" From bd820c7b9c03f1610ffa2fb04c076e1582afb656 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:14:25 -0400 Subject: [PATCH 08/42] add all read permissions for leaderboard user role --- .../public_account_extrinsic_failed_total_count.yaml | 12 ++++++++++++ ...public_account_extrinsic_success_total_count.yaml | 12 ++++++++++++ .../tables/public_account_extrinsic_total_count.yaml | 12 ++++++++++++ .../tables/public_account_remark_count.yaml | 12 ++++++++++++ ...lic_account_transaction_fee_paid_total_value.yaml | 12 ++++++++++++ ...public_account_transfer_receiver_total_count.yaml | 12 ++++++++++++ ...public_account_transfer_receiver_total_value.yaml | 12 ++++++++++++ .../public_account_transfer_sender_total_count.yaml | 12 ++++++++++++ .../public_account_transfer_sender_total_value.yaml | 12 ++++++++++++ .../tables/public_farmer_block_total_count.yaml | 12 ++++++++++++ .../tables/public_farmer_block_total_value.yaml | 12 ++++++++++++ .../public_farmer_vote_and_block_total_count.yaml | 12 ++++++++++++ .../public_farmer_vote_and_block_total_value.yaml | 12 ++++++++++++ .../tables/public_farmer_vote_total_count.yaml | 12 ++++++++++++ .../tables/public_farmer_vote_total_value.yaml | 12 ++++++++++++ .../public_nominator_deposits_total_count.yaml | 12 ++++++++++++ .../public_nominator_deposits_total_value.yaml | 12 ++++++++++++ .../public_nominator_withdrawals_total_count.yaml | 12 ++++++++++++ .../tables/public_operator_bundle_total_count.yaml | 12 ++++++++++++ .../tables/public_operator_deposits_total_count.yaml | 12 ++++++++++++ .../tables/public_operator_deposits_total_value.yaml | 12 ++++++++++++ .../public_operator_total_rewards_collected.yaml | 12 ++++++++++++ .../tables/public_operator_total_tax_collected.yaml | 12 ++++++++++++ .../public_operator_withdrawals_total_count.yaml | 12 ++++++++++++ 24 files changed, 288 insertions(+) diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml index 3d037f365..a52710bcd 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml @@ -1,3 +1,15 @@ table: name: account_extrinsic_failed_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml index 692b389db..b647b2ff4 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml @@ -1,3 +1,15 @@ table: name: account_extrinsic_success_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml index 8b33bae37..3b01ce67e 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml @@ -1,3 +1,15 @@ table: name: account_extrinsic_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml index d8e6046dd..87752632d 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml @@ -1,3 +1,15 @@ table: name: account_remark_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml index 8f7eb8c70..b1800e3ef 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml @@ -1,3 +1,15 @@ table: name: account_transaction_fee_paid_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml index a29bef3ff..ffcf574b3 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml @@ -1,3 +1,15 @@ table: name: account_transfer_receiver_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml index 189ffc742..eecadd6cd 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml @@ -1,3 +1,15 @@ table: name: account_transfer_receiver_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml index 77e151b64..01a16e9f6 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml @@ -1,3 +1,15 @@ table: name: account_transfer_sender_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml index a7568a2c5..7ed0ed78b 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml @@ -1,3 +1,15 @@ table: name: account_transfer_sender_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml index dd16faa63..a4d4675ba 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml @@ -1,3 +1,15 @@ table: name: farmer_block_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml index f6590d0e5..788873b0b 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml @@ -1,3 +1,15 @@ table: name: farmer_block_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml index 3186a702f..00d7a7b26 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml @@ -1,3 +1,15 @@ table: name: farmer_vote_and_block_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml index be1cb6780..d1ab3d3b8 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml @@ -1,3 +1,15 @@ table: name: farmer_vote_and_block_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml index 2042c552c..581ff5039 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml @@ -1,3 +1,15 @@ table: name: farmer_vote_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml index 76415bf34..aeb13428f 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml @@ -1,3 +1,15 @@ table: name: farmer_vote_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml index ea99ac775..c96cbc8cd 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml @@ -1,3 +1,15 @@ table: name: nominator_deposits_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml index e36d1cc79..5f6fbb577 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml @@ -1,3 +1,15 @@ table: name: nominator_deposits_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml index 00047a90a..e6cb984dc 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml @@ -1,3 +1,15 @@ table: name: nominator_withdrawals_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml index 847b082be..017c696b2 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml @@ -1,3 +1,15 @@ table: name: operator_bundle_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml index 69786be31..2a2bdfe4a 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml @@ -1,3 +1,15 @@ table: name: operator_deposits_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml index c955e591b..1f9014732 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml @@ -1,3 +1,15 @@ table: name: operator_deposits_total_value schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml index 6e22456d1..631b7562b 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml @@ -1,3 +1,15 @@ table: name: operator_total_rewards_collected schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml index 1cd26fd94..fd8f3c8a5 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml @@ -1,3 +1,15 @@ table: name: operator_total_tax_collected schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml index e6b07d935..d605f19c7 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml @@ -1,3 +1,15 @@ table: name: operator_withdrawals_total_count schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - rank + - updated_at + - value + - last_contribution_at + filter: {} + comment: "" From d7ddae507cfad592eb1d795cb606d5eb2183e959 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:29:19 -0400 Subject: [PATCH 09/42] map table with db name to avoid collision --- .../tables/public_account_extrinsic_failed_total_count.yaml | 5 +++++ .../tables/public_account_extrinsic_success_total_count.yaml | 5 +++++ .../tables/public_account_extrinsic_total_count.yaml | 5 +++++ .../leaderboard/tables/public_account_remark_count.yaml | 5 +++++ .../public_account_transaction_fee_paid_total_value.yaml | 5 +++++ .../tables/public_account_transfer_receiver_total_count.yaml | 5 +++++ .../tables/public_account_transfer_receiver_total_value.yaml | 5 +++++ .../tables/public_account_transfer_sender_total_count.yaml | 5 +++++ .../tables/public_account_transfer_sender_total_value.yaml | 5 +++++ .../leaderboard/tables/public_farmer_block_total_count.yaml | 5 +++++ .../leaderboard/tables/public_farmer_block_total_value.yaml | 5 +++++ .../tables/public_farmer_vote_and_block_total_count.yaml | 5 +++++ .../tables/public_farmer_vote_and_block_total_value.yaml | 5 +++++ .../leaderboard/tables/public_farmer_vote_total_count.yaml | 5 +++++ .../leaderboard/tables/public_farmer_vote_total_value.yaml | 5 +++++ .../tables/public_nominator_deposits_total_count.yaml | 5 +++++ .../tables/public_nominator_deposits_total_value.yaml | 5 +++++ .../tables/public_nominator_withdrawals_total_count.yaml | 5 +++++ .../tables/public_operator_bundle_total_count.yaml | 5 +++++ .../tables/public_operator_deposits_total_count.yaml | 5 +++++ .../tables/public_operator_deposits_total_value.yaml | 5 +++++ .../tables/public_operator_total_rewards_collected.yaml | 5 +++++ .../tables/public_operator_total_tax_collected.yaml | 5 +++++ .../tables/public_operator_withdrawals_total_count.yaml | 5 +++++ .../db/metadata/databases/staking/tables/public_account.yaml | 5 +++++ .../db/metadata/databases/staking/tables/public_bundle.yaml | 5 +++++ .../databases/staking/tables/public_bundle_author.yaml | 5 +++++ .../db/metadata/databases/staking/tables/public_deposit.yaml | 5 +++++ .../db/metadata/databases/staking/tables/public_domain.yaml | 5 +++++ .../databases/staking/tables/public_domain_block.yaml | 5 +++++ .../databases/staking/tables/public_domain_epoch.yaml | 5 +++++ .../metadata/databases/staking/tables/public_nominator.yaml | 5 +++++ .../metadata/databases/staking/tables/public_operator.yaml | 5 +++++ .../databases/staking/tables/public_reward_event.yaml | 5 +++++ .../db/metadata/databases/staking/tables/public_stats.yaml | 5 +++++ .../databases/staking/tables/public_stats_per_account.yaml | 5 +++++ .../databases/staking/tables/public_stats_per_domain.yaml | 5 +++++ .../databases/staking/tables/public_stats_per_nominator.yaml | 5 +++++ .../databases/staking/tables/public_stats_per_operator.yaml | 5 +++++ .../metadata/databases/staking/tables/public_withdrawal.yaml | 5 +++++ 40 files changed, 200 insertions(+) diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml index a52710bcd..c85565bfb 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_failed_total_count.yaml @@ -1,6 +1,11 @@ table: name: account_extrinsic_failed_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_failed_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml index b647b2ff4..77d89091d 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_success_total_count.yaml @@ -1,6 +1,11 @@ table: name: account_extrinsic_success_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_success_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml index 3b01ce67e..b4025223f 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_extrinsic_total_count.yaml @@ -1,6 +1,11 @@ table: name: account_extrinsic_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_extrinsic_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml index 87752632d..b4a1d9b69 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_remark_count.yaml @@ -1,6 +1,11 @@ table: name: account_remark_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_remark_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml index b1800e3ef..8261de6eb 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transaction_fee_paid_total_value.yaml @@ -1,6 +1,11 @@ table: name: account_transaction_fee_paid_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transaction_fee_paid_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml index ffcf574b3..9a1d5b359 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_count.yaml @@ -1,6 +1,11 @@ table: name: account_transfer_receiver_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_receiver_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml index eecadd6cd..7d8df5cb3 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_receiver_total_value.yaml @@ -1,6 +1,11 @@ table: name: account_transfer_receiver_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_receiver_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml index 01a16e9f6..33ab71d50 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_count.yaml @@ -1,6 +1,11 @@ table: name: account_transfer_sender_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_sender_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml index 7ed0ed78b..a3bb40725 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_account_transfer_sender_total_value.yaml @@ -1,6 +1,11 @@ table: name: account_transfer_sender_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_account_transfer_sender_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml index a4d4675ba..d8d30eb84 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_count.yaml @@ -1,6 +1,11 @@ table: name: farmer_block_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_block_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml index 788873b0b..cb4d3861a 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_block_total_value.yaml @@ -1,6 +1,11 @@ table: name: farmer_block_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_block_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml index 00d7a7b26..15569f00c 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_count.yaml @@ -1,6 +1,11 @@ table: name: farmer_vote_and_block_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_and_block_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml index d1ab3d3b8..961424d47 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_and_block_total_value.yaml @@ -1,6 +1,11 @@ table: name: farmer_vote_and_block_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_and_block_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml index 581ff5039..b95a9e8e2 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_count.yaml @@ -1,6 +1,11 @@ table: name: farmer_vote_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml index aeb13428f..65ec8028c 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_farmer_vote_total_value.yaml @@ -1,6 +1,11 @@ table: name: farmer_vote_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_farmer_vote_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml index c96cbc8cd..535a52606 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_count.yaml @@ -1,6 +1,11 @@ table: name: nominator_deposits_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_deposits_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml index 5f6fbb577..5bd0dcec8 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_deposits_total_value.yaml @@ -1,6 +1,11 @@ table: name: nominator_deposits_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_deposits_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml index e6cb984dc..14f660769 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_nominator_withdrawals_total_count.yaml @@ -1,6 +1,11 @@ table: name: nominator_withdrawals_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_nominator_withdrawals_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml index 017c696b2..e7c03349c 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_bundle_total_count.yaml @@ -1,6 +1,11 @@ table: name: operator_bundle_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_bundle_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml index 2a2bdfe4a..92249a96b 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_count.yaml @@ -1,6 +1,11 @@ table: name: operator_deposits_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_deposits_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml index 1f9014732..5ae48fcf3 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_deposits_total_value.yaml @@ -1,6 +1,11 @@ table: name: operator_deposits_total_value schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_deposits_total_value + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml index 631b7562b..581523518 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_rewards_collected.yaml @@ -1,6 +1,11 @@ table: name: operator_total_rewards_collected schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_total_rewards_collected + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml index fd8f3c8a5..9aba085f8 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_total_tax_collected.yaml @@ -1,6 +1,11 @@ table: name: operator_total_tax_collected schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_total_tax_collected + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml index d605f19c7..e041a9c09 100644 --- a/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml +++ b/indexers/db/metadata/databases/leaderboard/tables/public_operator_withdrawals_total_count.yaml @@ -1,6 +1,11 @@ table: name: operator_withdrawals_total_count schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: leaderboard_operator_withdrawals_total_count + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_account.yaml b/indexers/db/metadata/databases/staking/tables/public_account.yaml index 7bb152d98..423b4351a 100644 --- a/indexers/db/metadata/databases/staking/tables/public_account.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_account.yaml @@ -1,6 +1,11 @@ table: name: account schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_account + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml index 7b155acb4..4ac57df56 100644 --- a/indexers/db/metadata/databases/staking/tables/public_bundle.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_bundle.yaml @@ -1,6 +1,11 @@ table: name: bundle schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_bundle + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml index b13afc64b..3ac72936a 100644 --- a/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_bundle_author.yaml @@ -1,6 +1,11 @@ table: name: bundle_author schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_bundle_author + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml index 2b14a9415..20a1f4d00 100644 --- a/indexers/db/metadata/databases/staking/tables/public_deposit.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_deposit.yaml @@ -1,6 +1,11 @@ table: name: deposit schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_deposit + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_domain.yaml index b1e7c36f9..4b3f98e00 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain.yaml @@ -1,6 +1,11 @@ table: name: domain schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml index 64a9722da..22be2e31c 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain_block.yaml @@ -1,6 +1,11 @@ table: name: domain_block schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain_block + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml index 15a2a53d0..ce7118d82 100644 --- a/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_domain_epoch.yaml @@ -1,6 +1,11 @@ table: name: domain_epoch schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_domain_epoch + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml index f483551fc..fefee4a22 100644 --- a/indexers/db/metadata/databases/staking/tables/public_nominator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_nominator.yaml @@ -1,6 +1,11 @@ table: name: nominator schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_nominator + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_operator.yaml index 19109a69b..e764171db 100644 --- a/indexers/db/metadata/databases/staking/tables/public_operator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_operator.yaml @@ -1,6 +1,11 @@ table: name: operator schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_operator + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml index e68c89681..c2ed303eb 100644 --- a/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_reward_event.yaml @@ -1,6 +1,11 @@ table: name: reward_event schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_reward_event + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_stats.yaml b/indexers/db/metadata/databases/staking/tables/public_stats.yaml index af5f273ba..170e9404f 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats.yaml @@ -1,6 +1,11 @@ table: name: stats schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml index 3cd482c17..83e44c41d 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_account.yaml @@ -1,6 +1,11 @@ table: name: stats_per_account schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_account + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml index 4d30180dd..a5a3318f6 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_domain.yaml @@ -1,6 +1,11 @@ table: name: stats_per_domain schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_domain + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml index 65995333a..2e1fde463 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_nominator.yaml @@ -1,6 +1,11 @@ table: name: stats_per_nominator schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_nominator + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml index 2c56aa318..f8e66ae18 100644 --- a/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_stats_per_operator.yaml @@ -1,6 +1,11 @@ table: name: stats_per_operator schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_stats_per_operator + custom_root_fields: {} select_permissions: - role: user permission: diff --git a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml index 7a0734c75..083ff4e47 100644 --- a/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml +++ b/indexers/db/metadata/databases/staking/tables/public_withdrawal.yaml @@ -1,6 +1,11 @@ table: name: withdrawal schema: public +configuration: + column_config: {} + custom_column_names: {} + custom_name: staking_withdrawal + custom_root_fields: {} select_permissions: - role: user permission: From 7b77e187b08de93674a5e215ecbd3189a21ebd84 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 14:15:17 -0400 Subject: [PATCH 10/42] consensus squid basic --- indexers/consensus-squid/.env | 2 +- .../db/migrations/1724176996444-Data.js | 17 ++++++++++ indexers/consensus-squid/schema.graphql | 2 +- indexers/consensus-squid/src/blocks/index.ts | 12 +++++++ indexers/consensus-squid/src/events/index.ts | 12 ++++++- .../consensus-squid/src/extrinsics/index.ts | 25 +++++++++++++-- indexers/consensus-squid/src/storage/block.ts | 2 +- .../src/storage/eventModuleName.ts | 31 +++++++++++++++++++ .../src/storage/extrinsicModuleName.ts | 31 +++++++++++++++++++ indexers/consensus-squid/src/storage/index.ts | 8 +++++ .../consensus/tables/public_account.yaml | 3 ++ .../consensus/tables/public_block.yaml | 3 ++ .../consensus/tables/public_call.yaml | 3 ++ .../consensus/tables/public_event.yaml | 3 ++ .../tables/public_event_module_name.yaml | 3 ++ .../consensus/tables/public_extrinsic.yaml | 3 ++ .../tables/public_extrinsic_module_name.yaml | 3 ++ .../consensus/tables/public_log.yaml | 3 ++ .../consensus/tables/public_migrations.yaml | 3 ++ .../tables/squid_processor_hot_block.yaml | 3 ++ .../squid_processor_hot_change_log.yaml | 3 ++ .../tables/squid_processor_status.yaml | 8 +++++ .../databases/consensus/tables/tables.yaml | 12 ++++++- 23 files changed, 188 insertions(+), 7 deletions(-) create mode 100644 indexers/consensus-squid/db/migrations/1724176996444-Data.js create mode 100644 indexers/consensus-squid/src/storage/eventModuleName.ts create mode 100644 indexers/consensus-squid/src/storage/extrinsicModuleName.ts create mode 100644 indexers/consensus-squid/src/storage/index.ts create mode 100644 indexers/db/metadata/databases/consensus/tables/public_account.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_block.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_call.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_event.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_log.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_migrations.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml diff --git a/indexers/consensus-squid/.env b/indexers/consensus-squid/.env index 32ab8209b..201b910ed 100644 --- a/indexers/consensus-squid/.env +++ b/indexers/consensus-squid/.env @@ -1,4 +1,4 @@ -DB_URL=postgres://postgres:postgres-indexer@localhost:5432/consensus-squid +DB_URL=postgres://postgres:postgres@localhost:5432/consensus # DB_NAME=squid # DB_NAME=consensus-squid diff --git a/indexers/consensus-squid/db/migrations/1724176996444-Data.js b/indexers/consensus-squid/db/migrations/1724176996444-Data.js new file mode 100644 index 000000000..6ea048201 --- /dev/null +++ b/indexers/consensus-squid/db/migrations/1724176996444-Data.js @@ -0,0 +1,17 @@ +module.exports = class Data1724176996444 { + name = 'Data1724176996444' + + async up(db) { + await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) + await db.query(`ALTER TABLE "block" DROP COLUMN "timestamp"`) + await db.query(`ALTER TABLE "block" ADD "timestamp" integer NOT NULL`) + await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) + } + + async down(db) { + await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) + await db.query(`ALTER TABLE "block" ADD "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL`) + await db.query(`ALTER TABLE "block" DROP COLUMN "timestamp"`) + await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) + } +} diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index d9cdfdd15..c5653f4e1 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -11,7 +11,7 @@ type Account @entity { type Block @entity { id: ID! @index height: BigInt! @index - timestamp: DateTime! @index + timestamp: Int! @index hash: String! @index parentHash: String! specId: String! diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index 6ca078d75..df73d96ac 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -2,6 +2,7 @@ import type { ApiPromise } from "@autonomys/auto-utils"; import { Store } from "@subsquid/typeorm-store"; import { processExtrinsics } from "../extrinsics"; import type { Ctx, CtxBlock } from "../processor"; +import { getOrCreateBlock } from "../storage"; import { logBlock } from "../utils"; import { Cache, load, save } from "../utils/cache"; @@ -9,6 +10,17 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx); logBlock(ctx.blocks); for (let block of ctx.blocks) { + console.log("block", block); + const _block = getOrCreateBlock(cache, block, { + id: block.header.id, + height: BigInt(block.header.height ?? 0), + timestamp: Number(block.header.timestamp ?? 0), + hash: block.header.hash ?? "", + parentHash: block.header.parentHash ?? "", + specId: block.header.specVersion.toString() ?? "", + }); + cache.blocks.set(_block.id, _block); + cache = await processBlock(cache, api, block); } diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index b35749165..30787d918 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,6 +1,6 @@ import type { ApiPromise } from "@autonomys/auto-utils"; import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; -import { events } from "../types"; +import { getOrCreateEvent, getOrCreateEventModuleName } from "../storage"; import { Cache } from "../utils/cache"; export async function processEvents( @@ -10,6 +10,11 @@ export async function processEvents( extrinsic: CtxExtrinsic ) { for (let event of extrinsic.events) { + const _event = getOrCreateEvent(cache, block, event.id, { + name: event.name, + }); + cache.events.set(_event.id, _event); + cache = await processEvent(cache, api, block, extrinsic, event); } return cache; @@ -22,6 +27,11 @@ async function processEvent( extrinsic: CtxExtrinsic, event: CtxEvent ) { + const _eventModuleName = getOrCreateEventModuleName(cache, block, event.id, { + name: event.name, + }); + cache.eventModuleNames.set(_eventModuleName.id, _eventModuleName); + switch (event.name) { default: return cache; diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 657ad0b59..59faf5bb4 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -1,7 +1,10 @@ import type { ApiPromise } from "@autonomys/auto-utils"; import { processEvents } from "../events"; import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { calls } from "../types"; +import { + getOrCreateExtrinsic, + getOrCreateExtrinsicModuleName, +} from "../storage"; import { Cache } from "../utils/cache"; export async function processExtrinsics( @@ -10,7 +13,15 @@ export async function processExtrinsics( block: CtxBlock, extrinsics: CtxExtrinsic[] ) { - for (let extrinsic of extrinsics) { + for (let [index, extrinsic] of extrinsics.entries()) { + console.log("extrinsic", extrinsic); + + const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { + hash: extrinsic.hash, + indexInBlock: index, + }); + cache.extrinsics.set(_extrinsic.id, _extrinsic); + cache = await processExtrinsic(cache, api, block, extrinsic); } return cache; @@ -22,6 +33,16 @@ export async function processExtrinsic( block: CtxBlock, extrinsic: CtxExtrinsic ) { + const _extrinsicModuleName = getOrCreateExtrinsicModuleName( + cache, + block, + extrinsic.id, + { + name: extrinsic.call?.name, + } + ); + cache.extrinsicModuleNames.set(_extrinsicModuleName.id, _extrinsicModuleName); + switch (extrinsic.call?.name) { default: return await processEvents(cache, api, block, extrinsic); diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts index 311937c63..8e74a51df 100644 --- a/indexers/consensus-squid/src/storage/block.ts +++ b/indexers/consensus-squid/src/storage/block.ts @@ -11,7 +11,7 @@ export const createBlock = ( return new Block({ id: props.id ?? "", height: props.height ?? BigInt(0), - timestamp: props.timestamp ?? new Date(), + timestamp: props.timestamp ?? 0, hash: props.hash ?? "", parentHash: props.parentHash ?? "", specId: props.specId ?? "", diff --git a/indexers/consensus-squid/src/storage/eventModuleName.ts b/indexers/consensus-squid/src/storage/eventModuleName.ts new file mode 100644 index 000000000..3e42647e9 --- /dev/null +++ b/indexers/consensus-squid/src/storage/eventModuleName.ts @@ -0,0 +1,31 @@ +import { EventModuleName } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createEventModuleName = ( + block: CtxBlock, + id: string, + props: Partial = {} +): EventModuleName => { + const blockNumber = getBlockNumber(block); + return new EventModuleName({ + id: id, + name: "", + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateEventModuleName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): EventModuleName => { + const eventModuleName = cache.eventModuleNames.get(id); + + if (!eventModuleName) return createEventModuleName(block, id, props); + + return eventModuleName; +}; diff --git a/indexers/consensus-squid/src/storage/extrinsicModuleName.ts b/indexers/consensus-squid/src/storage/extrinsicModuleName.ts new file mode 100644 index 000000000..4db0ca8a3 --- /dev/null +++ b/indexers/consensus-squid/src/storage/extrinsicModuleName.ts @@ -0,0 +1,31 @@ +import { ExtrinsicModuleName } from "../model"; +import type { CtxBlock } from "../processor"; +import { getBlockNumber } from "../utils"; +import { Cache } from "../utils/cache"; + +export const createExtrinsicModuleName = ( + block: CtxBlock, + id: string, + props: Partial = {} +): ExtrinsicModuleName => { + const blockNumber = getBlockNumber(block); + return new ExtrinsicModuleName({ + id: id, + name: "", + createdAt: blockNumber, + ...props, + }); +}; + +export const getOrCreateExtrinsicModuleName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {} +): ExtrinsicModuleName => { + const extrinsicModuleName = cache.extrinsicModuleNames.get(id); + + if (!extrinsicModuleName) return createExtrinsicModuleName(block, id, props); + + return extrinsicModuleName; +}; diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts new file mode 100644 index 000000000..f05e5ec63 --- /dev/null +++ b/indexers/consensus-squid/src/storage/index.ts @@ -0,0 +1,8 @@ +export * from "./account"; +export * from "./block"; +export * from "./call"; +export * from "./event"; +export * from "./eventModuleName"; +export * from "./extrinsic"; +export * from "./extrinsicModuleName"; +export * from "./log"; diff --git a/indexers/db/metadata/databases/consensus/tables/public_account.yaml b/indexers/db/metadata/databases/consensus/tables/public_account.yaml new file mode 100644 index 000000000..5681f6647 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_account.yaml @@ -0,0 +1,3 @@ +table: + name: account + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_block.yaml b/indexers/db/metadata/databases/consensus/tables/public_block.yaml new file mode 100644 index 000000000..e11689037 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_block.yaml @@ -0,0 +1,3 @@ +table: + name: block + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_call.yaml b/indexers/db/metadata/databases/consensus/tables/public_call.yaml new file mode 100644 index 000000000..42526eded --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_call.yaml @@ -0,0 +1,3 @@ +table: + name: call + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_event.yaml b/indexers/db/metadata/databases/consensus/tables/public_event.yaml new file mode 100644 index 000000000..45c93395a --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_event.yaml @@ -0,0 +1,3 @@ +table: + name: event + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml new file mode 100644 index 000000000..572af2bea --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml @@ -0,0 +1,3 @@ +table: + name: event_module_name + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml new file mode 100644 index 000000000..73c766366 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml @@ -0,0 +1,3 @@ +table: + name: extrinsic + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml new file mode 100644 index 000000000..1104320bb --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml @@ -0,0 +1,3 @@ +table: + name: extrinsic_module_name + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_log.yaml b/indexers/db/metadata/databases/consensus/tables/public_log.yaml new file mode 100644 index 000000000..6c051690c --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_log.yaml @@ -0,0 +1,3 @@ +table: + name: log + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml b/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml new file mode 100644 index 000000000..c1c1ca6c2 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_migrations.yaml @@ -0,0 +1,3 @@ +table: + name: migrations + schema: public diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml new file mode 100644 index 000000000..389202054 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml @@ -0,0 +1,3 @@ +table: + name: hot_block + schema: squid_processor diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml new file mode 100644 index 000000000..88cbea63f --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml @@ -0,0 +1,3 @@ +table: + name: hot_change_log + schema: squid_processor diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml new file mode 100644 index 000000000..9eda34ddd --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/squid_processor_status.yaml @@ -0,0 +1,8 @@ +table: + name: status + schema: squid_processor +configuration: + column_config: {} + custom_column_names: {} + custom_name: consensus_status + custom_root_fields: {} diff --git a/indexers/db/metadata/databases/consensus/tables/tables.yaml b/indexers/db/metadata/databases/consensus/tables/tables.yaml index fe51488c7..e0205e861 100644 --- a/indexers/db/metadata/databases/consensus/tables/tables.yaml +++ b/indexers/db/metadata/databases/consensus/tables/tables.yaml @@ -1 +1,11 @@ -[] +- "!include public_account.yaml" +- "!include public_block.yaml" +- "!include public_call.yaml" +- "!include public_event.yaml" +- "!include public_event_module_name.yaml" +- "!include public_extrinsic.yaml" +- "!include public_extrinsic_module_name.yaml" +- "!include public_log.yaml" +- "!include squid_processor_hot_block.yaml" +- "!include squid_processor_hot_change_log.yaml" +- "!include squid_processor_status.yaml" From 4febdcd6ff5e16f1ea0a44755315fec7c4274f24 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:46:17 -0400 Subject: [PATCH 11/42] remove account, general and reward squid --- indexers/account-squid/.dockerignore | 4 - indexers/account-squid/.env.local | 4 - indexers/account-squid/.env.sample | 4 - .../.github/ISSUE_TEMPLATE/bug_report.md | 45 - indexers/account-squid/.gitignore | 11 - indexers/account-squid/.npmrc | 1 - indexers/account-squid/Dockerfile | 38 - indexers/account-squid/LICENSE | 21 - indexers/account-squid/README.md | 31 - indexers/account-squid/assets/README.MD | 3 - indexers/account-squid/commands.json | 109 - .../db/migrations/1711387049803-Data.js | 33 - .../account-squid/docker-compose-local.yml | 11 - indexers/account-squid/docker-compose.yml | 39 - indexers/account-squid/gemini3h.jsonl | 5 - indexers/account-squid/package-lock.json | 4587 -------------- indexers/account-squid/package.json | 30 - indexers/account-squid/schema.graphql | 29 - indexers/account-squid/scripts/docker-run.sh | 5 - indexers/account-squid/scripts/install-sqd.sh | 39 - indexers/account-squid/scripts/sub-client.js | 42 - indexers/account-squid/squid.yaml | 18 - .../account-squid/src/account/constants.ts | 18 - indexers/account-squid/src/account/utils.ts | 79 - indexers/account-squid/src/main.ts | 223 - .../src/model/generated/account.model.ts | 38 - .../model/generated/backupCounter.model.ts | 21 - .../src/model/generated/index.ts | 3 - .../src/model/generated/marshal.ts | 179 - .../src/model/generated/transfer.model.ts | 40 - indexers/account-squid/src/model/index.ts | 1 - indexers/account-squid/src/processor.ts | 68 - .../account-squid/src/types/balances/calls.ts | 100 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 298 - .../src/types/balances/storage.ts | 253 - indexers/account-squid/src/types/calls.ts | 8 - indexers/account-squid/src/types/constants.ts | 9 - .../account-squid/src/types/domains/calls.ts | 221 - .../src/types/domains/constants.ts | 213 - .../account-squid/src/types/domains/events.ts | 235 - .../src/types/domains/storage.ts | 1040 ---- indexers/account-squid/src/types/events.ts | 8 - indexers/account-squid/src/types/index.ts | 7 - .../src/types/messenger/calls.ts | 115 - .../src/types/messenger/constants.ts | 11 - .../src/types/messenger/events.ts | 150 - .../src/types/messenger/storage.ts | 316 - .../account-squid/src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../account-squid/src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - indexers/account-squid/src/types/storage.ts | 8 - .../account-squid/src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- indexers/account-squid/src/types/support.ts | 142 - .../account-squid/src/types/system/calls.ts | 146 - .../src/types/system/constants.ts | 66 - .../account-squid/src/types/system/events.ts | 94 - .../account-squid/src/types/system/storage.ts | 363 -- .../src/types/timestamp/calls.ts | 14 - .../src/types/timestamp/constants.ts | 16 - .../src/types/timestamp/storage.ts | 39 - .../src/types/transaction-fees/constants.ts | 43 - .../src/types/transaction-fees/events.ts | 54 - .../src/types/transaction-fees/storage.ts | 86 - .../account-squid/src/types/utility/calls.ts | 199 - .../src/types/utility/constants.ts | 11 - .../account-squid/src/types/utility/events.ts | 76 - indexers/account-squid/src/types/v0.ts | 4597 -------------- indexers/account-squid/src/types/v1.ts | 4097 ------------- indexers/account-squid/src/types/v3.ts | 2472 -------- indexers/account-squid/tsconfig.json | 19 - indexers/account-squid/typegen.json | 60 - indexers/consensus-squid/schema.graphql | 9 + indexers/general-squid/.dockerignore | 4 - indexers/general-squid/.env.local | 4 - indexers/general-squid/.env.sample | 4 - .../.github/ISSUE_TEMPLATE/bug_report.md | 45 - indexers/general-squid/.gitignore | 11 - indexers/general-squid/.npmrc | 1 - indexers/general-squid/Dockerfile | 38 - indexers/general-squid/Dockerfile-debug | 59 - indexers/general-squid/LICENSE | 21 - indexers/general-squid/README.md | 40 - indexers/general-squid/assets/README.MD | 3 - indexers/general-squid/commands.json | 114 - .../general-squid/docker-compose-debug.yml | 68 - .../general-squid/docker-compose-local.yml | 11 - indexers/general-squid/docker-compose.yml | 39 - indexers/general-squid/gemini3h.jsonl | 5 - indexers/general-squid/package-lock.json | 5319 ----------------- indexers/general-squid/package.json | 33 - indexers/general-squid/schema.graphql | 124 - indexers/general-squid/scripts/docker-run.sh | 5 - indexers/general-squid/scripts/install-sqd.sh | 39 - indexers/general-squid/scripts/sub-client.js | 42 - indexers/general-squid/squid.yaml | 18 - .../src/blocks/databaseOperations.ts | 181 - indexers/general-squid/src/blocks/types.ts | 23 - indexers/general-squid/src/blocks/utils.ts | 47 - .../src/config/processorConfig.ts | 8 - indexers/general-squid/src/main.ts | 94 - .../src/model/generated/_counterLevel.ts | 5 - .../model/generated/_extrinsicSignature.ts | 49 - .../src/model/generated/_itemType.ts | 5 - .../src/model/generated/block.model.ts | 90 - .../src/model/generated/call.model.ts | 67 - .../src/model/generated/event.model.ts | 54 - .../model/generated/eventModuleName.model.ts | 15 - .../src/model/generated/extrinsic.model.ts | 70 - .../generated/extrinsicModuleName.model.ts | 15 - .../src/model/generated/index.ts | 11 - .../src/model/generated/itemsCounter.model.ts | 25 - .../src/model/generated/log.model.ts | 23 - .../src/model/generated/marshal.ts | 179 - indexers/general-squid/src/model/index.ts | 1 - indexers/general-squid/src/processor.ts | 66 - .../general-squid/src/types/balances/calls.ts | 119 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 312 - .../src/types/balances/storage.ts | 253 - indexers/general-squid/src/types/calls.ts | 8 - indexers/general-squid/src/types/constants.ts | 9 - .../general-squid/src/types/domains/calls.ts | 278 - .../src/types/domains/constants.ts | 213 - .../general-squid/src/types/domains/events.ts | 250 - .../src/types/domains/storage.ts | 1226 ---- indexers/general-squid/src/types/events.ts | 8 - indexers/general-squid/src/types/index.ts | 8 - .../src/types/messenger/calls.ts | 146 - .../src/types/messenger/constants.ts | 23 - .../src/types/messenger/events.ts | 150 - .../src/types/messenger/storage.ts | 332 - .../general-squid/src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../general-squid/src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - indexers/general-squid/src/types/storage.ts | 8 - .../general-squid/src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- indexers/general-squid/src/types/support.ts | 142 - .../general-squid/src/types/system/calls.ts | 146 - .../src/types/system/constants.ts | 66 - .../general-squid/src/types/system/events.ts | 94 - .../general-squid/src/types/system/storage.ts | 405 -- .../src/types/timestamp/calls.ts | 14 - .../src/types/timestamp/constants.ts | 16 - .../src/types/timestamp/storage.ts | 39 - .../src/types/transaction-fees/constants.ts | 43 - .../src/types/transaction-fees/events.ts | 54 - .../src/types/transaction-fees/storage.ts | 86 - .../general-squid/src/types/utility/calls.ts | 320 - .../src/types/utility/constants.ts | 11 - .../general-squid/src/types/utility/events.ts | 76 - indexers/general-squid/src/types/v0.ts | 4597 -------------- indexers/general-squid/src/types/v1.ts | 4097 ------------- indexers/general-squid/src/types/v3.ts | 2472 -------- indexers/general-squid/src/types/v5.ts | 4370 -------------- indexers/general-squid/tsconfig.json | 18 - indexers/general-squid/typegen.json | 60 - indexers/rewards-squid/.dockerignore | 4 - indexers/rewards-squid/.env.local | 4 - indexers/rewards-squid/.env.sample | 4 - .../.github/ISSUE_TEMPLATE/bug_report.md | 45 - indexers/rewards-squid/.gitignore | 12 - indexers/rewards-squid/.npmrc | 1 - indexers/rewards-squid/Dockerfile | 38 - indexers/rewards-squid/LICENSE | 21 - indexers/rewards-squid/README.md | 31 - indexers/rewards-squid/assets/README.MD | 3 - indexers/rewards-squid/commands.json | 109 - .../db/migrations/1713160183202-Data.js | 103 - .../rewards-squid/docker-compose-local.yml | 11 - indexers/rewards-squid/docker-compose.yml | 39 - indexers/rewards-squid/gemini3g.jsonl | 6 - indexers/rewards-squid/gemini3h.jsonl | 6 - indexers/rewards-squid/package-lock.json | 5208 ---------------- indexers/rewards-squid/package.json | 31 - indexers/rewards-squid/schema.graphql | 108 - indexers/rewards-squid/scripts/docker-run.sh | 5 - indexers/rewards-squid/scripts/install-sqd.sh | 39 - indexers/rewards-squid/scripts/sub-client.js | 37 - indexers/rewards-squid/squid.yaml | 18 - .../rewards-squid/src/blocks/constants.ts | 16 - indexers/rewards-squid/src/blocks/utils.ts | 434 -- indexers/rewards-squid/src/config.ts | 8 - indexers/rewards-squid/src/main.ts | 108 - .../src/model/generated/account.model.ts | 22 - .../model/generated/accountReward.model.ts | 33 - .../src/model/generated/deposit.model.ts | 40 - .../src/model/generated/domainEpoch.model.ts | 21 - .../src/model/generated/index.ts | 10 - .../src/model/generated/marshal.ts | 179 - .../src/model/generated/nominator.model.ts | 31 - .../src/model/generated/operator.model.ts | 68 - .../model/generated/operatorReward.model.ts | 18 - .../generated/operatorRewardEvent.model.ts | 38 - .../generated/operatorUnlockedFunds.model.ts | 40 - .../src/model/generated/rewardEvent.model.ts | 38 - indexers/rewards-squid/src/model/index.ts | 1 - indexers/rewards-squid/src/processor.ts | 57 - .../rewards-squid/src/types/balances/calls.ts | 100 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 298 - .../src/types/balances/storage.ts | 253 - indexers/rewards-squid/src/types/calls.ts | 5 - indexers/rewards-squid/src/types/constants.ts | 5 - .../rewards-squid/src/types/domains/calls.ts | 221 - .../src/types/domains/constants.ts | 213 - .../rewards-squid/src/types/domains/events.ts | 235 - .../src/types/domains/storage.ts | 1040 ---- indexers/rewards-squid/src/types/events.ts | 5 - indexers/rewards-squid/src/types/index.ts | 7 - .../src/types/messenger/calls.ts | 115 - .../src/types/messenger/constants.ts | 11 - .../src/types/messenger/events.ts | 150 - .../src/types/messenger/storage.ts | 316 - .../rewards-squid/src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../rewards-squid/src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - indexers/rewards-squid/src/types/storage.ts | 5 - .../rewards-squid/src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- indexers/rewards-squid/src/types/support.ts | 142 - indexers/rewards-squid/src/types/v0.ts | 1960 ------ indexers/rewards-squid/src/types/v1.ts | 953 --- indexers/rewards-squid/src/types/v3.ts | 434 -- indexers/rewards-squid/tsconfig.json | 19 - indexers/rewards-squid/typegen.json | 36 - .../db/migrations/1724178035744-Data.js | 269 + indexers/staking-squid/src/events/bundle.ts | 19 +- .../staking-squid/src/storage/domainEpoch.ts | 3 +- 240 files changed, 291 insertions(+), 65192 deletions(-) delete mode 100644 indexers/account-squid/.dockerignore delete mode 100644 indexers/account-squid/.env.local delete mode 100644 indexers/account-squid/.env.sample delete mode 100644 indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 indexers/account-squid/.gitignore delete mode 100644 indexers/account-squid/.npmrc delete mode 100644 indexers/account-squid/Dockerfile delete mode 100644 indexers/account-squid/LICENSE delete mode 100644 indexers/account-squid/README.md delete mode 100644 indexers/account-squid/assets/README.MD delete mode 100644 indexers/account-squid/commands.json delete mode 100644 indexers/account-squid/db/migrations/1711387049803-Data.js delete mode 100644 indexers/account-squid/docker-compose-local.yml delete mode 100644 indexers/account-squid/docker-compose.yml delete mode 100644 indexers/account-squid/gemini3h.jsonl delete mode 100644 indexers/account-squid/package-lock.json delete mode 100644 indexers/account-squid/package.json delete mode 100644 indexers/account-squid/schema.graphql delete mode 100644 indexers/account-squid/scripts/docker-run.sh delete mode 100644 indexers/account-squid/scripts/install-sqd.sh delete mode 100644 indexers/account-squid/scripts/sub-client.js delete mode 100644 indexers/account-squid/squid.yaml delete mode 100644 indexers/account-squid/src/account/constants.ts delete mode 100644 indexers/account-squid/src/account/utils.ts delete mode 100644 indexers/account-squid/src/main.ts delete mode 100644 indexers/account-squid/src/model/generated/account.model.ts delete mode 100644 indexers/account-squid/src/model/generated/backupCounter.model.ts delete mode 100644 indexers/account-squid/src/model/generated/index.ts delete mode 100644 indexers/account-squid/src/model/generated/marshal.ts delete mode 100644 indexers/account-squid/src/model/generated/transfer.model.ts delete mode 100644 indexers/account-squid/src/model/index.ts delete mode 100644 indexers/account-squid/src/processor.ts delete mode 100644 indexers/account-squid/src/types/balances/calls.ts delete mode 100644 indexers/account-squid/src/types/balances/constants.ts delete mode 100644 indexers/account-squid/src/types/balances/events.ts delete mode 100644 indexers/account-squid/src/types/balances/storage.ts delete mode 100644 indexers/account-squid/src/types/calls.ts delete mode 100644 indexers/account-squid/src/types/constants.ts delete mode 100644 indexers/account-squid/src/types/domains/calls.ts delete mode 100644 indexers/account-squid/src/types/domains/constants.ts delete mode 100644 indexers/account-squid/src/types/domains/events.ts delete mode 100644 indexers/account-squid/src/types/domains/storage.ts delete mode 100644 indexers/account-squid/src/types/events.ts delete mode 100644 indexers/account-squid/src/types/index.ts delete mode 100644 indexers/account-squid/src/types/messenger/calls.ts delete mode 100644 indexers/account-squid/src/types/messenger/constants.ts delete mode 100644 indexers/account-squid/src/types/messenger/events.ts delete mode 100644 indexers/account-squid/src/types/messenger/storage.ts delete mode 100644 indexers/account-squid/src/types/rewards/calls.ts delete mode 100644 indexers/account-squid/src/types/rewards/constants.ts delete mode 100644 indexers/account-squid/src/types/rewards/events.ts delete mode 100644 indexers/account-squid/src/types/rewards/storage.ts delete mode 100644 indexers/account-squid/src/types/storage.ts delete mode 100644 indexers/account-squid/src/types/subspace/calls.ts delete mode 100644 indexers/account-squid/src/types/subspace/constants.ts delete mode 100644 indexers/account-squid/src/types/subspace/events.ts delete mode 100644 indexers/account-squid/src/types/subspace/storage.ts delete mode 100644 indexers/account-squid/src/types/support.ts delete mode 100644 indexers/account-squid/src/types/system/calls.ts delete mode 100644 indexers/account-squid/src/types/system/constants.ts delete mode 100644 indexers/account-squid/src/types/system/events.ts delete mode 100644 indexers/account-squid/src/types/system/storage.ts delete mode 100644 indexers/account-squid/src/types/timestamp/calls.ts delete mode 100644 indexers/account-squid/src/types/timestamp/constants.ts delete mode 100644 indexers/account-squid/src/types/timestamp/storage.ts delete mode 100644 indexers/account-squid/src/types/transaction-fees/constants.ts delete mode 100644 indexers/account-squid/src/types/transaction-fees/events.ts delete mode 100644 indexers/account-squid/src/types/transaction-fees/storage.ts delete mode 100644 indexers/account-squid/src/types/utility/calls.ts delete mode 100644 indexers/account-squid/src/types/utility/constants.ts delete mode 100644 indexers/account-squid/src/types/utility/events.ts delete mode 100644 indexers/account-squid/src/types/v0.ts delete mode 100644 indexers/account-squid/src/types/v1.ts delete mode 100644 indexers/account-squid/src/types/v3.ts delete mode 100644 indexers/account-squid/tsconfig.json delete mode 100644 indexers/account-squid/typegen.json delete mode 100644 indexers/general-squid/.dockerignore delete mode 100644 indexers/general-squid/.env.local delete mode 100644 indexers/general-squid/.env.sample delete mode 100644 indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 indexers/general-squid/.gitignore delete mode 100644 indexers/general-squid/.npmrc delete mode 100644 indexers/general-squid/Dockerfile delete mode 100644 indexers/general-squid/Dockerfile-debug delete mode 100644 indexers/general-squid/LICENSE delete mode 100644 indexers/general-squid/README.md delete mode 100644 indexers/general-squid/assets/README.MD delete mode 100644 indexers/general-squid/commands.json delete mode 100644 indexers/general-squid/docker-compose-debug.yml delete mode 100644 indexers/general-squid/docker-compose-local.yml delete mode 100644 indexers/general-squid/docker-compose.yml delete mode 100644 indexers/general-squid/gemini3h.jsonl delete mode 100644 indexers/general-squid/package-lock.json delete mode 100644 indexers/general-squid/package.json delete mode 100644 indexers/general-squid/schema.graphql delete mode 100644 indexers/general-squid/scripts/docker-run.sh delete mode 100644 indexers/general-squid/scripts/install-sqd.sh delete mode 100644 indexers/general-squid/scripts/sub-client.js delete mode 100644 indexers/general-squid/squid.yaml delete mode 100644 indexers/general-squid/src/blocks/databaseOperations.ts delete mode 100644 indexers/general-squid/src/blocks/types.ts delete mode 100644 indexers/general-squid/src/blocks/utils.ts delete mode 100644 indexers/general-squid/src/config/processorConfig.ts delete mode 100644 indexers/general-squid/src/main.ts delete mode 100644 indexers/general-squid/src/model/generated/_counterLevel.ts delete mode 100644 indexers/general-squid/src/model/generated/_extrinsicSignature.ts delete mode 100644 indexers/general-squid/src/model/generated/_itemType.ts delete mode 100644 indexers/general-squid/src/model/generated/block.model.ts delete mode 100644 indexers/general-squid/src/model/generated/call.model.ts delete mode 100644 indexers/general-squid/src/model/generated/event.model.ts delete mode 100644 indexers/general-squid/src/model/generated/eventModuleName.model.ts delete mode 100644 indexers/general-squid/src/model/generated/extrinsic.model.ts delete mode 100644 indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts delete mode 100644 indexers/general-squid/src/model/generated/index.ts delete mode 100644 indexers/general-squid/src/model/generated/itemsCounter.model.ts delete mode 100644 indexers/general-squid/src/model/generated/log.model.ts delete mode 100644 indexers/general-squid/src/model/generated/marshal.ts delete mode 100644 indexers/general-squid/src/model/index.ts delete mode 100644 indexers/general-squid/src/processor.ts delete mode 100644 indexers/general-squid/src/types/balances/calls.ts delete mode 100644 indexers/general-squid/src/types/balances/constants.ts delete mode 100644 indexers/general-squid/src/types/balances/events.ts delete mode 100644 indexers/general-squid/src/types/balances/storage.ts delete mode 100644 indexers/general-squid/src/types/calls.ts delete mode 100644 indexers/general-squid/src/types/constants.ts delete mode 100644 indexers/general-squid/src/types/domains/calls.ts delete mode 100644 indexers/general-squid/src/types/domains/constants.ts delete mode 100644 indexers/general-squid/src/types/domains/events.ts delete mode 100644 indexers/general-squid/src/types/domains/storage.ts delete mode 100644 indexers/general-squid/src/types/events.ts delete mode 100644 indexers/general-squid/src/types/index.ts delete mode 100644 indexers/general-squid/src/types/messenger/calls.ts delete mode 100644 indexers/general-squid/src/types/messenger/constants.ts delete mode 100644 indexers/general-squid/src/types/messenger/events.ts delete mode 100644 indexers/general-squid/src/types/messenger/storage.ts delete mode 100644 indexers/general-squid/src/types/rewards/calls.ts delete mode 100644 indexers/general-squid/src/types/rewards/constants.ts delete mode 100644 indexers/general-squid/src/types/rewards/events.ts delete mode 100644 indexers/general-squid/src/types/rewards/storage.ts delete mode 100644 indexers/general-squid/src/types/storage.ts delete mode 100644 indexers/general-squid/src/types/subspace/calls.ts delete mode 100644 indexers/general-squid/src/types/subspace/constants.ts delete mode 100644 indexers/general-squid/src/types/subspace/events.ts delete mode 100644 indexers/general-squid/src/types/subspace/storage.ts delete mode 100644 indexers/general-squid/src/types/support.ts delete mode 100644 indexers/general-squid/src/types/system/calls.ts delete mode 100644 indexers/general-squid/src/types/system/constants.ts delete mode 100644 indexers/general-squid/src/types/system/events.ts delete mode 100644 indexers/general-squid/src/types/system/storage.ts delete mode 100644 indexers/general-squid/src/types/timestamp/calls.ts delete mode 100644 indexers/general-squid/src/types/timestamp/constants.ts delete mode 100644 indexers/general-squid/src/types/timestamp/storage.ts delete mode 100644 indexers/general-squid/src/types/transaction-fees/constants.ts delete mode 100644 indexers/general-squid/src/types/transaction-fees/events.ts delete mode 100644 indexers/general-squid/src/types/transaction-fees/storage.ts delete mode 100644 indexers/general-squid/src/types/utility/calls.ts delete mode 100644 indexers/general-squid/src/types/utility/constants.ts delete mode 100644 indexers/general-squid/src/types/utility/events.ts delete mode 100644 indexers/general-squid/src/types/v0.ts delete mode 100644 indexers/general-squid/src/types/v1.ts delete mode 100644 indexers/general-squid/src/types/v3.ts delete mode 100644 indexers/general-squid/src/types/v5.ts delete mode 100644 indexers/general-squid/tsconfig.json delete mode 100644 indexers/general-squid/typegen.json delete mode 100644 indexers/rewards-squid/.dockerignore delete mode 100644 indexers/rewards-squid/.env.local delete mode 100644 indexers/rewards-squid/.env.sample delete mode 100644 indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 indexers/rewards-squid/.gitignore delete mode 100644 indexers/rewards-squid/.npmrc delete mode 100644 indexers/rewards-squid/Dockerfile delete mode 100644 indexers/rewards-squid/LICENSE delete mode 100644 indexers/rewards-squid/README.md delete mode 100644 indexers/rewards-squid/assets/README.MD delete mode 100644 indexers/rewards-squid/commands.json delete mode 100644 indexers/rewards-squid/db/migrations/1713160183202-Data.js delete mode 100644 indexers/rewards-squid/docker-compose-local.yml delete mode 100644 indexers/rewards-squid/docker-compose.yml delete mode 100644 indexers/rewards-squid/gemini3g.jsonl delete mode 100644 indexers/rewards-squid/gemini3h.jsonl delete mode 100644 indexers/rewards-squid/package-lock.json delete mode 100644 indexers/rewards-squid/package.json delete mode 100644 indexers/rewards-squid/schema.graphql delete mode 100644 indexers/rewards-squid/scripts/docker-run.sh delete mode 100644 indexers/rewards-squid/scripts/install-sqd.sh delete mode 100644 indexers/rewards-squid/scripts/sub-client.js delete mode 100644 indexers/rewards-squid/squid.yaml delete mode 100644 indexers/rewards-squid/src/blocks/constants.ts delete mode 100644 indexers/rewards-squid/src/blocks/utils.ts delete mode 100644 indexers/rewards-squid/src/config.ts delete mode 100644 indexers/rewards-squid/src/main.ts delete mode 100644 indexers/rewards-squid/src/model/generated/account.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/accountReward.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/deposit.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/domainEpoch.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/index.ts delete mode 100644 indexers/rewards-squid/src/model/generated/marshal.ts delete mode 100644 indexers/rewards-squid/src/model/generated/nominator.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/operator.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/operatorReward.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts delete mode 100644 indexers/rewards-squid/src/model/generated/rewardEvent.model.ts delete mode 100644 indexers/rewards-squid/src/model/index.ts delete mode 100644 indexers/rewards-squid/src/processor.ts delete mode 100644 indexers/rewards-squid/src/types/balances/calls.ts delete mode 100644 indexers/rewards-squid/src/types/balances/constants.ts delete mode 100644 indexers/rewards-squid/src/types/balances/events.ts delete mode 100644 indexers/rewards-squid/src/types/balances/storage.ts delete mode 100644 indexers/rewards-squid/src/types/calls.ts delete mode 100644 indexers/rewards-squid/src/types/constants.ts delete mode 100644 indexers/rewards-squid/src/types/domains/calls.ts delete mode 100644 indexers/rewards-squid/src/types/domains/constants.ts delete mode 100644 indexers/rewards-squid/src/types/domains/events.ts delete mode 100644 indexers/rewards-squid/src/types/domains/storage.ts delete mode 100644 indexers/rewards-squid/src/types/events.ts delete mode 100644 indexers/rewards-squid/src/types/index.ts delete mode 100644 indexers/rewards-squid/src/types/messenger/calls.ts delete mode 100644 indexers/rewards-squid/src/types/messenger/constants.ts delete mode 100644 indexers/rewards-squid/src/types/messenger/events.ts delete mode 100644 indexers/rewards-squid/src/types/messenger/storage.ts delete mode 100644 indexers/rewards-squid/src/types/rewards/calls.ts delete mode 100644 indexers/rewards-squid/src/types/rewards/constants.ts delete mode 100644 indexers/rewards-squid/src/types/rewards/events.ts delete mode 100644 indexers/rewards-squid/src/types/rewards/storage.ts delete mode 100644 indexers/rewards-squid/src/types/storage.ts delete mode 100644 indexers/rewards-squid/src/types/subspace/calls.ts delete mode 100644 indexers/rewards-squid/src/types/subspace/constants.ts delete mode 100644 indexers/rewards-squid/src/types/subspace/events.ts delete mode 100644 indexers/rewards-squid/src/types/subspace/storage.ts delete mode 100644 indexers/rewards-squid/src/types/support.ts delete mode 100644 indexers/rewards-squid/src/types/v0.ts delete mode 100644 indexers/rewards-squid/src/types/v1.ts delete mode 100644 indexers/rewards-squid/src/types/v3.ts delete mode 100644 indexers/rewards-squid/tsconfig.json delete mode 100644 indexers/rewards-squid/typegen.json create mode 100644 indexers/staking-squid/db/migrations/1724178035744-Data.js diff --git a/indexers/account-squid/.dockerignore b/indexers/account-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/account-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/account-squid/.env.local b/indexers/account-squid/.env.local deleted file mode 100644 index 8c457e57a..000000000 --- a/indexers/account-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=account-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4452 -DB_PORT=5435 diff --git a/indexers/account-squid/.env.sample b/indexers/account-squid/.env.sample deleted file mode 100644 index 347e99fbf..000000000 --- a/indexers/account-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=account-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/account-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/account-squid/.gitignore b/indexers/account-squid/.gitignore deleted file mode 100644 index 03865ae03..000000000 --- a/indexers/account-squid/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/node_modules -/lib -/builds - -/**Versions.json -/**Versions.jsonl - -# IDE files -/.idea -/.env -/data \ No newline at end of file diff --git a/indexers/account-squid/.npmrc b/indexers/account-squid/.npmrc deleted file mode 100644 index 4fd021952..000000000 --- a/indexers/account-squid/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true \ No newline at end of file diff --git a/indexers/account-squid/Dockerfile b/indexers/account-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/account-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/account-squid/LICENSE b/indexers/account-squid/LICENSE deleted file mode 100644 index 7ef99c6a7..000000000 --- a/indexers/account-squid/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Subsquid Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/indexers/account-squid/README.md b/indexers/account-squid/README.md deleted file mode 100644 index 220c8d4e9..000000000 --- a/indexers/account-squid/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Account-Squid Indexer - -The Account-Squid indexer is designed for efficient tracking and querying of account-related data on the Astral blockchain. This tool enhances the accessibility and utility of account data for various applications. - -## Overview - -- Focuses on indexing transactions and balances associated with blockchain accounts. -- Provides data access through a GraphQL API, facilitating easy integration with frontend applications. - -## Getting Started - -To work with the Account-Squid indexer: - -1. Ensure that Node.js (version 16.x or higher) and Docker are installed on your system. -2. Clone the repository and navigate to the `account-squid` directory. -3. Install necessary dependencies and initiate the services required for indexing and querying. - -## Development Guidelines - -- Adhere to established coding standards and best practices within the project. -- Conduct thorough testing for new features or bug fixes. -- Maintain clear and concise documentation for any major modifications or additions to the codebase. - -## Useful Links - -- [Subsquid Documentation](https://docs.subsquid.io) - For general guidelines on working with Squid indexers. -- [Deployment Guide](https://docs.subsquid.io/deploy-squid/) - For details on deploying and managing indexers. - -## License - -This indexer operates under the MIT License, as does the broader Astral project. diff --git a/indexers/account-squid/assets/README.MD b/indexers/account-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/account-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/account-squid/commands.json b/indexers/account-squid/commands.json deleted file mode 100644 index 2e95a4be0..000000000 --- a/indexers/account-squid/commands.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://cdn.subsquid.io/schemas/commands.json", - "commands": { - "clean": { - "description": "delete all build artifacts", - "cmd": ["npx", "--yes", "rimraf", "lib"] - }, - "build": { - "description": "Build the squid project", - "deps": ["clean"], - "cmd": ["tsc"] - }, - "up": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "up", "-d"] - }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, - "down": { - "description": "Drop a PG database", - "cmd": ["docker", "compose", "down"] - }, - "migration:apply": { - "description": "Apply the DB migrations", - "cmd": ["squid-typeorm-migration", "apply"] - }, - "migration:generate": { - "description": "Generate a DB migration matching the TypeORM entities", - "deps": ["build", "migration:clean"], - "cmd": ["squid-typeorm-migration", "generate"] - }, - "migration:clean": { - "description": "Clean the migrations folder", - "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] - }, - "migration": { - "deps": ["build"], - "cmd": ["squid-typeorm-migration", "generate"], - "hidden": true - }, - "codegen": { - "description": "Generate TypeORM entities from the schema file", - "cmd": ["squid-typeorm-codegen"] - }, - "typegen": { - "description": "Generate data access classes for an substrate metadata", - "cmd": ["squid-substrate-typegen", "./typegen.json"] - }, - "process": { - "description": "Load .env and start the squid processor", - "deps": ["build", "migration:apply"], - "cmd": ["node", "--require=dotenv/config", "lib/main.js"] - }, - "process:prod": { - "description": "Start the squid processor", - "deps": ["migration:apply"], - "cmd": ["node", "lib/main.js"], - "hidden": true - }, - "serve": { - "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] - }, - "serve:prod": { - "description": "Start the GraphQL API server with caching and limits", - "cmd": [ - "squid-graphql-server", - "--dumb-cache", - "in-memory", - "--dumb-cache-ttl", - "1000", - "--dumb-cache-size", - "100", - "--dumb-cache-max-age", - "1000" - ] - }, - "check-updates": { - "cmd": [ - "npx", - "--yes", - "npm-check-updates", - "--filter=/subsquid/", - "--upgrade" - ], - "hidden": true - }, - "bump": { - "description": "Bump @subsquid packages to the latest versions", - "deps": ["check-updates"], - "cmd": ["npm", "i", "-f"] - }, - "open": { - "description": "Open a local browser window", - "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] - } - } -} diff --git a/indexers/account-squid/db/migrations/1711387049803-Data.js b/indexers/account-squid/db/migrations/1711387049803-Data.js deleted file mode 100644 index cd2ac4617..000000000 --- a/indexers/account-squid/db/migrations/1711387049803-Data.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = class Data1711387049803 { - name = 'Data1711387049803' - - async up(db) { - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "amount" numeric NOT NULL, "fee" numeric NOT NULL, "from_id" character varying, "to_id" character varying, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d6624eacc30144ea97915fe846" ON "transfer" ("block_number") `) - await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_070c555a86b0b41a534a55a659" ON "transfer" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_76bdfed1a7eb27c6d8ecbb7349" ON "transfer" ("from_id") `) - await db.query(`CREATE INDEX "IDX_0751309c66e97eac9ef1149362" ON "transfer" ("to_id") `) - await db.query(`CREATE INDEX "IDX_f4007436c1b546ede08a4fd7ab" ON "transfer" ("amount") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric NOT NULL, "updated_at_block" integer NOT NULL, "nonce" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3e9dfd81b129caa0b9d3b8f4ab" ON "account" ("updated_at_block") `) - await db.query(`CREATE TABLE "backup_counter" ("id" character varying NOT NULL, "balances_transfers_volume" numeric NOT NULL, "balances_transfers_amount" numeric NOT NULL, "chain_signed_extrinsics" numeric NOT NULL, CONSTRAINT "PK_68cff71a7e23d9d07fe40a39e4e" PRIMARY KEY ("id"))`) - await db.query(`ALTER TABLE "transfer" ADD CONSTRAINT "FK_76bdfed1a7eb27c6d8ecbb73496" FOREIGN KEY ("from_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "transfer" ADD CONSTRAINT "FK_0751309c66e97eac9ef11493623" FOREIGN KEY ("to_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - } - - async down(db) { - await db.query(`DROP TABLE "transfer"`) - await db.query(`DROP INDEX "public"."IDX_d6624eacc30144ea97915fe846"`) - await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) - await db.query(`DROP INDEX "public"."IDX_070c555a86b0b41a534a55a659"`) - await db.query(`DROP INDEX "public"."IDX_76bdfed1a7eb27c6d8ecbb7349"`) - await db.query(`DROP INDEX "public"."IDX_0751309c66e97eac9ef1149362"`) - await db.query(`DROP INDEX "public"."IDX_f4007436c1b546ede08a4fd7ab"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_3e9dfd81b129caa0b9d3b8f4ab"`) - await db.query(`DROP TABLE "backup_counter"`) - await db.query(`ALTER TABLE "transfer" DROP CONSTRAINT "FK_76bdfed1a7eb27c6d8ecbb73496"`) - await db.query(`ALTER TABLE "transfer" DROP CONSTRAINT "FK_0751309c66e97eac9ef11493623"`) - } -} diff --git a/indexers/account-squid/docker-compose-local.yml b/indexers/account-squid/docker-compose-local.yml deleted file mode 100644 index 3fa6dbb29..000000000 --- a/indexers/account-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/account-squid/docker-compose.yml b/indexers/account-squid/docker-compose.yml deleted file mode 100644 index 61d3277d8..000000000 --- a/indexers/account-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/account-squid/gemini3h.jsonl b/indexers/account-squid/gemini3h.jsonl deleted file mode 100644 index 1bf2a8720..000000000 --- a/indexers/account-squid/gemini3h.jsonl +++ /dev/null @@ -1,5 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} -{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} diff --git a/indexers/account-squid/package-lock.json b/indexers/account-squid/package-lock.json deleted file mode 100644 index b532200e8..000000000 --- a/indexers/account-squid/package-lock.json +++ /dev/null @@ -1,4587 +0,0 @@ -{ - "name": "squid", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "squid", - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvadapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", - "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "dataloader": "^2.1.0", - "keyv": "^4.4.0" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dependencies": { - "xss": "^1.0.8" - } - }, - "node_modules/@belopash/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-OvXrZHP21tLKRK+8ysFfvlRHXFpEFz/Nj8GEzZOHn0jPzIpr15swNHVRx1xABLyG994P0H/JCR9FEu8e7z4Tag==", - "dependencies": { - "@subsquid/logger": "^1.3.3", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.3.0", - "pg": "^8.11.3", - "typeorm": "^0.3.16" - } - }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@keyv/redis": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", - "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", - "dependencies": { - "ioredis": "^5.3.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" - }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, - "node_modules/@subsquid/graphiql-console": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", - "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" - }, - "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", - "dependencies": { - "@apollo/utils.keyvadapter": "~1.1.2", - "@apollo/utils.keyvaluecache": "~1.0.2", - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/schema": "^10.0.2", - "@graphql-tools/utils": "^10.0.11", - "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "apollo-server-plugin-response-cache": "~3.7.1", - "commander": "^11.1.0", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-ws": "^5.14.2", - "keyv": "~4.5.4", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "squid-graphql-server": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0", - "class-validator": "^0.14.0", - "type-graphql": "^1.2.0-rc.1", - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - }, - "class-validator": { - "optional": true - }, - "type-graphql": { - "optional": true - }, - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "node-fetch": "^3.3.2" - } - }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/logger": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", - "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2", - "supports-color": "^8.1.1" - } - }, - "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "commander": "^11.1.0", - "deep-equal": "^2.2.3", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-parse-resolve-info": "^4.14.0", - "graphql-ws": "^5.14.2", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "openreader": "bin/main.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - } - } - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "websocket": "^1.0.34" - } - }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/scale-codec": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", - "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2" - } - }, - "node_modules/@subsquid/scale-type-system": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", - "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, - "dependencies": { - "@subsquid/util-internal": "^3.0.0" - }, - "peerDependencies": { - "@subsquid/scale-codec": "^4.0.1" - } - }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/ss58": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", - "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", - "dependencies": { - "@subsquid/ss58-codec": "^1.2.3", - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/ss58-codec": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", - "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", - "dependencies": { - "base-x": "^4.0.0", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-xxhash": "^1.2.2", - "@substrate/calc": "^0.2.8", - "blake2b": "^2.1.4" - }, - "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-timeout": "^2.3.2" - }, - "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" - } - }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-metadata-explorer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", - "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", - "dev": true, - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.5.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-metadata-explorer": "bin/run.js", - "substrate-metadata-explorer": "bin/run.js" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", - "peer": true, - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "@subsquid/util-xxhash": "^1.2.2", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", - "dev": true, - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-config": "^2.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-typegen": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", - "dev": true, - "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-typeorm-codegen": "bin/run.js" - } - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-config": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", - "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "@subsquid/util-naming": "^1.2.2" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/typeorm-migration": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", - "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "commander": "^11.1.0", - "dotenv": "^16.3.1" - }, - "bin": { - "squid-typeorm-migration": "bin/squid-typeorm-migration", - "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", - "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", - "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", - "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-32jwKA2fEYuGpyKEisKOlrz6JTd0hXTXOLC9S4IIsOnhkY70Ua69QDe0CCTgKTrvMNOCwk3gPR+q8RwrlEMupQ==", - "peer": true, - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==", - "peer": true - }, - "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" - }, - "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" - }, - "peerDependenciesMeta": { - "@subsquid/logger": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-binary-heap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", - "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" - }, - "node_modules/@subsquid/util-internal-code-printer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", - "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" - }, - "node_modules/@subsquid/util-internal-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", - "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.3.0", - "jsonc-parser": "^3.2.0" - } - }, - "node_modules/@subsquid/util-internal-counters": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", - "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" - }, - "node_modules/@subsquid/util-internal-hex": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", - "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" - }, - "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", - "dependencies": { - "stoppable": "^1.1.0" - } - }, - "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@subsquid/util-internal-archive-client": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", - "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" - }, - "peerDependencies": { - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0" - } - }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-read-lines": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", - "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", - "dev": true - }, - "node_modules/@subsquid/util-internal-ts-node": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", - "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" - }, - "node_modules/@subsquid/util-naming": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", - "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", - "dependencies": { - "camelcase": "^6.3.0", - "inflected": "^2.1.0" - } - }, - "node_modules/@subsquid/util-timeout": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", - "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" - }, - "node_modules/@subsquid/util-xxhash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", - "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", - "dependencies": { - "xxhash-wasm": "^1.0.2", - "xxhashjs": "^0.2.2" - } - }, - "node_modules/@substrate/calc": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", - "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" - }, - "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/apollo-server-core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/apollo-server-core/node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.13.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-response-cache": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", - "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", - "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-plugin-base": "^3.6.3", - "apollo-server-types": "^3.6.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, - "node_modules/blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-highlight/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-parse-resolve-info": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", - "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", - "dependencies": { - "debug": "^4.1.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "peerDependencies": { - "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflected": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", - "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ioredis/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ioredis/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", - "dependencies": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typeorm": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", - "buffer": "^6.0.3", - "chalk": "^4.1.2", - "cli-highlight": "^2.1.11", - "dayjs": "^1.11.9", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^10.3.10", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.2.1", - "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">=16.13.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^5.8.0", - "mssql": "^9.1.1 || ^10.0.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^6.3.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", - "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - } - } -} diff --git a/indexers/account-squid/package.json b/indexers/account-squid/package.json deleted file mode 100644 index 3d7d22aa9..000000000 --- a/indexers/account-squid/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/account-squid/schema.graphql b/indexers/account-squid/schema.graphql deleted file mode 100644 index d6ecc2513..000000000 --- a/indexers/account-squid/schema.graphql +++ /dev/null @@ -1,29 +0,0 @@ -type Account @entity { - "Account address" - id: ID! @index - free: BigInt! - reserved: BigInt! - total: BigInt! - updatedAtBlock: Int! @index - nonce: Int! - transfersTo: [Transfer!] @derivedFrom(field: "to") - transfersFrom: [Transfer!] @derivedFrom(field: "from") -} - -type BackupCounter @entity { - id: ID! @index - balancesTransfersVolume: BigInt! - balancesTransfersAmount: BigInt! - chainSignedExtrinsics: BigInt! -} - -type Transfer @entity { - id: ID! @index - blockNumber: Int! @index - timestamp: DateTime! @index - extrinsicHash: String @index - from: Account! - to: Account! - amount: BigInt! @index - fee: BigInt! -} diff --git a/indexers/account-squid/scripts/docker-run.sh b/indexers/account-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/account-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/account-squid/scripts/install-sqd.sh b/indexers/account-squid/scripts/install-sqd.sh deleted file mode 100644 index 74f7eb7b5..000000000 --- a/indexers/account-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/account-squid account-squid - - cd account-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/account-squid/scripts/sub-client.js b/indexers/account-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/account-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/account-squid/squid.yaml b/indexers/account-squid/squid.yaml deleted file mode 100644 index 52e59f71c..000000000 --- a/indexers/account-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: account-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/account-squid/src/account/constants.ts b/indexers/account-squid/src/account/constants.ts deleted file mode 100644 index 93f0e03de..000000000 --- a/indexers/account-squid/src/account/constants.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { events } from "../types"; - -export const CONFIG = { - prefix: 2254, -}; - -export const PREFIX = 2254; - -export const BALANCE_UPDATE_EVENTS = [ - events.balances.balanceSet.v0.name, - events.balances.deposit.v0.name, - events.balances.reserved.v0.name, - events.balances.slashed.v0.name, - events.balances.withdraw.v0.name, - events.balances.unreserved.v0.name, - events.balances.burned.v0.name, - events.balances.restored.v0.name, -]; diff --git a/indexers/account-squid/src/account/utils.ts b/indexers/account-squid/src/account/utils.ts deleted file mode 100644 index 7060c3478..000000000 --- a/indexers/account-squid/src/account/utils.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import * as ss58 from "@subsquid/ss58"; -import { In } from "typeorm"; -import { Account } from "../model"; -import { Call, Event, ProcessorContext } from "../processor"; -import { events } from "../types"; -import { BALANCE_UPDATE_EVENTS, CONFIG } from "./constants"; - -export interface TransferEvent { - id: string; - blockNumber: number; - timestamp: Date; - extrinsicHash?: string; - from: string; - to: string; - amount: bigint; - fee?: bigint; -} - -/** - * - * @param id - * @returns substrate account address properly encoded - */ -export function encodeId(id: Uint8Array | string) { - return ss58.codec(CONFIG.prefix).encode(id); -} - -export function callIsValid(call: Call): boolean { - return ( - call.parentCall == null && - call.origin && - call.origin.__kind === "system" && - call.origin.value.__kind === "Signed" - ); -} - -export function isBalanceUpdateEvent(event: Event): boolean { - return BALANCE_UPDATE_EVENTS.includes(event.name); -} - -export function handleRepatriatedEvent(event: Event) { - const accountsToUpdate = new Set(); - - const rec = events.balances.reserveRepatriated.v0.decode(event); - - accountsToUpdate.add(rec.from); - accountsToUpdate.add(rec.to); - - return accountsToUpdate.values(); -} - -export function handleEndowedEvent(event: Event) { - const accountsToUpdate = new Set(); - - const rec = events.balances.endowed.v0.decode(event); - - accountsToUpdate.add(rec.account); - - return accountsToUpdate.values(); -} - -export async function ensureAccountsExist( - ctx: ProcessorContext, - accountIds: string[] -): Promise> { - const accounts = new Map(); - - const existingAccounts = await ctx.store.findBy(Account, { - id: In(accountIds), - }); - existingAccounts.forEach((account) => accounts.set(account.id, account)); - - accountIds.forEach((id) => { - if (!accounts.has(id)) accounts.set(id, new Account({ id })); - }); - - return accounts; -} diff --git a/indexers/account-squid/src/main.ts b/indexers/account-squid/src/main.ts deleted file mode 100644 index b58604129..000000000 --- a/indexers/account-squid/src/main.ts +++ /dev/null @@ -1,223 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { - TransferEvent, - callIsValid, - encodeId, - ensureAccountsExist, - handleEndowedEvent, - handleRepatriatedEvent, - isBalanceUpdateEvent, -} from "./account/utils"; -import { Account, Transfer } from "./model"; -import { - Block, - BlockHeader, - Event, - ProcessorContext, - processor, -} from "./processor"; -import { events, storage } from "./types"; - -processor.run( - new TypeormDatabaseWithCache({ supportHotBlocks: true }), - async (ctx) => { - const transfers: Transfer[] = []; - const accountsList: string[] = []; - const blocksLength = ctx.blocks.length; - - for (let block of ctx.blocks) { - accountsList.push(...gatherAccountsToUpdateFromCalls(block)); - const eventsResult = await processEvents(ctx, block); - accountsList.push(...eventsResult.accountsToUpdate); - transfers.push(...eventsResult.transfers); - } - - const updatedAccounts = await updateAccounts( - ctx, - ctx.blocks[blocksLength - 1].header, - Array.from(accountsList) - ); - - await ctx.store.upsert(updatedAccounts); - await ctx.store.insert(transfers); - - ctx.log.child("accounts").info(`updated: ${updatedAccounts.length}`); - ctx.log.child("transfers").info(`updated: ${transfers.length}`); - } -); - -function gatherAccountsToUpdateFromCalls(block: Block) { - const accountsToUpdate = new Set(); - - for (let call of block.calls) { - if (callIsValid(call)) { - const accountId = call.origin.value.value; - accountsToUpdate.add(accountId); - } - } - - return accountsToUpdate.values(); -} - -async function processEvents( - ctx: ProcessorContext, - block: Block -) { - const accountsToUpdate: string[] = []; - const transfers: Transfer[] = []; - - for (let event of block.events) { - switch (event.name) { - case events.balances.transfer.name: - const rec = await handleTransferEvent(block.header, event, ctx); - accountsToUpdate.push(...rec.accountsToUpdate.values()); - transfers.push(...rec.transfers); - break; - case events.balances.reserveRepatriated.v0.name: - accountsToUpdate.push(...handleRepatriatedEvent(event)); - break; - case events.balances.endowed.v0.name: - accountsToUpdate.push(...handleEndowedEvent(event)); - break; - default: - if (isBalanceUpdateEvent(event)) { - accountsToUpdate.push(event.args.who); - } - break; - } - } - - return { accountsToUpdate, transfers }; -} - -async function handleTransferEvent( - header: BlockHeader, - event: Event, - ctx: ProcessorContext -) { - const transfers: Transfer[] = []; - const accountsToUpdate = new Set(); - const rec = events.balances.transfer.v0.decode(event); - - const transferEvent = getTransferEvent(header, event); - - const accounts = await ensureAccountsExist(ctx, [ - transferEvent.from, - transferEvent.to, - ]); - - transfers.push( - new Transfer({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - from: accounts.get(transferEvent.from), - to: accounts.get(transferEvent.to), - amount: transferEvent.amount, - fee: event.extrinsic?.fee || 0n, - }) - ); - - accountsToUpdate.add(rec.from); - accountsToUpdate.add(rec.to); - - return { transfers, accountsToUpdate }; -} - -function getTransferEvent(header: BlockHeader, event: Event): TransferEvent { - const rec = events.balances.transfer.v0.decode(event); - - const transfer = { - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - from: encodeId(rec.from), - to: encodeId(rec.to), - amount: rec.amount, - fee: event.extrinsic?.fee || 0n, - }; - - return transfer; -} - -async function getAccountBalance(header: BlockHeader, accountId: string) { - let balance = await getBalancesAccountBalance(header, accountId); - - if (balance == null) { - balance = await getSystemAccountBalance(header, accountId); - } - - return balance; -} - -async function updateAccounts( - ctx: ProcessorContext, - header: BlockHeader, - accountIds: string[] -) { - const accounts: Account[] = []; - - for (let i = 0; i < accountIds.length; i++) { - const accountId = accountIds[i]; - const id = encodeId(accountId); - const balance = await getAccountBalance(header, accountId); - - if (!balance) { - ctx.log.warn(`No balance for account id: ${id}`); - continue; - } - - const total = balance.free + balance.reserved; - // check if there is an existing account created earlier (i.e. when processing blocks) - const existingAccount = await ctx.store.get(Account, id); - - // update account nonce if it exists - const accountInfo = await storage.system.account.v0.get(header, accountId); - - const account = new Account({ - ...existingAccount, - id, - free: balance.free, - reserved: balance.reserved, - total, - updatedAtBlock: header.height, - nonce: accountInfo?.nonce, - }); - - accounts.push(account); - } - - return accounts; -} - -async function getSystemAccountBalance(header: BlockHeader, accountId: string) { - const accountInfo = await storage.system.account.v0.get(header, accountId); - - if (accountInfo == null) { - return undefined; - } - - const { free, reserved } = accountInfo.data; - - return { free, reserved }; -} - -async function getBalancesAccountBalance( - header: BlockHeader, - accountId: string -) { - const balance = await storage.balances.account.v0.get(header, accountId); - - if (balance == null) { - return undefined; - } - - const { free, reserved } = balance; - - return { free, reserved }; -} diff --git a/indexers/account-squid/src/model/generated/account.model.ts b/indexers/account-squid/src/model/generated/account.model.ts deleted file mode 100644 index 4c130e988..000000000 --- a/indexers/account-squid/src/model/generated/account.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Transfer} from "./transfer.model" - -@Entity_() -export class Account { - constructor(props?: Partial) { - Object.assign(this, props) - } - - /** - * Account address - */ - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - free!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - reserved!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - total!: bigint - - @Index_() - @Column_("int4", {nullable: false}) - updatedAtBlock!: number - - @Column_("int4", {nullable: false}) - nonce!: number - - @OneToMany_(() => Transfer, e => e.to) - transfersTo!: Transfer[] - - @OneToMany_(() => Transfer, e => e.from) - transfersFrom!: Transfer[] -} diff --git a/indexers/account-squid/src/model/generated/backupCounter.model.ts b/indexers/account-squid/src/model/generated/backupCounter.model.ts deleted file mode 100644 index 5ab22a892..000000000 --- a/indexers/account-squid/src/model/generated/backupCounter.model.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_} from "typeorm" -import * as marshal from "./marshal" - -@Entity_() -export class BackupCounter { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - balancesTransfersVolume!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - balancesTransfersAmount!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - chainSignedExtrinsics!: bigint -} diff --git a/indexers/account-squid/src/model/generated/index.ts b/indexers/account-squid/src/model/generated/index.ts deleted file mode 100644 index 6f012d369..000000000 --- a/indexers/account-squid/src/model/generated/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./account.model" -export * from "./backupCounter.model" -export * from "./transfer.model" diff --git a/indexers/account-squid/src/model/generated/marshal.ts b/indexers/account-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/account-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/account-squid/src/model/generated/transfer.model.ts b/indexers/account-squid/src/model/generated/transfer.model.ts deleted file mode 100644 index f4d0986f8..000000000 --- a/indexers/account-squid/src/model/generated/transfer.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class Transfer { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - from!: Account - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - to!: Account - - @Index_() - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - amount!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - fee!: bigint -} diff --git a/indexers/account-squid/src/model/index.ts b/indexers/account-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/account-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/account-squid/src/processor.ts b/indexers/account-squid/src/processor.ts deleted file mode 100644 index 24d485132..000000000 --- a/indexers/account-squid/src/processor.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - DataHandlerContext, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, - Block as _Block, - BlockHeader as _BlockHeader, - Call as _Call, - Event as _Event, - Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -import { events } from "./types"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .addEvent({ - name: [ - events.balances.balanceSet.v0.name, - events.balances.deposit.v0.name, - events.balances.endowed.v0.name, - events.balances.reserved.v0.name, - events.balances.reserveRepatriated.v0.name, - events.balances.slashed.v0.name, - events.balances.transfer.v0.name, - events.balances.withdraw.v0.name, - events.balances.unreserved.v0.name, - events.balances.burned.v0.name, - events.balances.restored.v0.name, - ], - extrinsic: true, - }) - .addCall({}) - .setFields({ - call: { - name: true, - args: true, - origin: true, - success: true, - error: true, - }, - event: { - name: true, - args: true, - phase: true, - }, - extrinsic: { - hash: true, - fee: true, - }, - block: { - timestamp: true, - }, - }); -// Uncomment to disable RPC ingestion and drastically reduce no of RPC calls -//.useArchiveOnly() - -export type Fields = SubstrateBatchProcessorFields; -export type Block = _Block; -export type BlockHeader = _BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/account-squid/src/types/balances/calls.ts b/indexers/account-squid/src/types/balances/calls.ts deleted file mode 100644 index 906f6aa15..000000000 --- a/indexers/account-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,100 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/balances/constants.ts b/indexers/account-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/account-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/balances/events.ts b/indexers/account-squid/src/types/balances/events.ts deleted file mode 100644 index da33447db..000000000 --- a/indexers/account-squid/src/types/balances/events.ts +++ /dev/null @@ -1,298 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/balances/storage.ts b/indexers/account-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/account-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/account-squid/src/types/calls.ts b/indexers/account-squid/src/types/calls.ts deleted file mode 100644 index f86459d11..000000000 --- a/indexers/account-squid/src/types/calls.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/calls' -export * as timestamp from './timestamp/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as utility from './utility/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/account-squid/src/types/constants.ts b/indexers/account-squid/src/types/constants.ts deleted file mode 100644 index 1a3e8c237..000000000 --- a/indexers/account-squid/src/types/constants.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as system from './system/constants' -export * as timestamp from './timestamp/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as utility from './utility/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/account-squid/src/types/domains/calls.ts b/indexers/account-squid/src/types/domains/calls.ts deleted file mode 100644 index 9c96646e2..000000000 --- a/indexers/account-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,221 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} diff --git a/indexers/account-squid/src/types/domains/constants.ts b/indexers/account-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/account-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/domains/events.ts b/indexers/account-squid/src/types/domains/events.ts deleted file mode 100644 index 0974cf477..000000000 --- a/indexers/account-squid/src/types/domains/events.ts +++ /dev/null @@ -1,235 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/domains/storage.ts b/indexers/account-squid/src/types/domains/storage.ts deleted file mode 100644 index 0fbb2fa84..000000000 --- a/indexers/account-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1040 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} diff --git a/indexers/account-squid/src/types/events.ts b/indexers/account-squid/src/types/events.ts deleted file mode 100644 index 8e7e8d88a..000000000 --- a/indexers/account-squid/src/types/events.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as utility from './utility/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/account-squid/src/types/index.ts b/indexers/account-squid/src/types/index.ts deleted file mode 100644 index 5b659ac4a..000000000 --- a/indexers/account-squid/src/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as v0 from './v0' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/account-squid/src/types/messenger/calls.ts b/indexers/account-squid/src/types/messenger/calls.ts deleted file mode 100644 index 748fc2ae0..000000000 --- a/indexers/account-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/account-squid/src/types/messenger/constants.ts b/indexers/account-squid/src/types/messenger/constants.ts deleted file mode 100644 index e50ab0673..000000000 --- a/indexers/account-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/messenger/events.ts b/indexers/account-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/account-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/messenger/storage.ts b/indexers/account-squid/src/types/messenger/storage.ts deleted file mode 100644 index b1dbfcf28..000000000 --- a/indexers/account-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,316 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} diff --git a/indexers/account-squid/src/types/rewards/calls.ts b/indexers/account-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/account-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/account-squid/src/types/rewards/constants.ts b/indexers/account-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/account-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/account-squid/src/types/rewards/events.ts b/indexers/account-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/account-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/rewards/storage.ts b/indexers/account-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/account-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/account-squid/src/types/storage.ts b/indexers/account-squid/src/types/storage.ts deleted file mode 100644 index cf9914baa..000000000 --- a/indexers/account-squid/src/types/storage.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/storage' -export * as timestamp from './timestamp/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/account-squid/src/types/subspace/calls.ts b/indexers/account-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/account-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/account-squid/src/types/subspace/constants.ts b/indexers/account-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/account-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/subspace/events.ts b/indexers/account-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/account-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/account-squid/src/types/subspace/storage.ts b/indexers/account-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/account-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/account-squid/src/types/support.ts b/indexers/account-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/account-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/account-squid/src/types/system/calls.ts b/indexers/account-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/account-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/account-squid/src/types/system/constants.ts b/indexers/account-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/account-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/system/events.ts b/indexers/account-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/account-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/account-squid/src/types/system/storage.ts b/indexers/account-squid/src/types/system/storage.ts deleted file mode 100644 index ff620ea64..000000000 --- a/indexers/account-squid/src/types/system/storage.ts +++ /dev/null @@ -1,363 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} diff --git a/indexers/account-squid/src/types/timestamp/calls.ts b/indexers/account-squid/src/types/timestamp/calls.ts deleted file mode 100644 index 60a975536..000000000 --- a/indexers/account-squid/src/types/timestamp/calls.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/timestamp/constants.ts b/indexers/account-squid/src/types/timestamp/constants.ts deleted file mode 100644 index 09884d72c..000000000 --- a/indexers/account-squid/src/types/timestamp/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/timestamp/storage.ts b/indexers/account-squid/src/types/timestamp/storage.ts deleted file mode 100644 index 1bf820c09..000000000 --- a/indexers/account-squid/src/types/timestamp/storage.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, -} - -/** - * The current time for the current block. - */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, -} - -/** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/account-squid/src/types/transaction-fees/constants.ts b/indexers/account-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/account-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/account-squid/src/types/transaction-fees/events.ts b/indexers/account-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/account-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/account-squid/src/types/transaction-fees/storage.ts b/indexers/account-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/account-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/account-squid/src/types/utility/calls.ts b/indexers/account-squid/src/types/utility/calls.ts deleted file mode 100644 index 1b482cb82..000000000 --- a/indexers/account-squid/src/types/utility/calls.ts +++ /dev/null @@ -1,199 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), -} - -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), -} - -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), -} - -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), -} diff --git a/indexers/account-squid/src/types/utility/constants.ts b/indexers/account-squid/src/types/utility/constants.ts deleted file mode 100644 index e82480598..000000000 --- a/indexers/account-squid/src/types/utility/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), -} diff --git a/indexers/account-squid/src/types/utility/events.ts b/indexers/account-squid/src/types/utility/events.ts deleted file mode 100644 index 1652db0da..000000000 --- a/indexers/account-squid/src/types/utility/events.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), -} - -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), -} - -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), -} - -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), -} - -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), -} - -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/account-squid/src/types/v0.ts b/indexers/account-squid/src/types/v0.ts deleted file mode 100644 index deff27135..000000000 --- a/indexers/account-squid/src/types/v0.ts +++ /dev/null @@ -1,4597 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/account-squid/src/types/v1.ts b/indexers/account-squid/src/types/v1.ts deleted file mode 100644 index 44f1ffbdf..000000000 --- a/indexers/account-squid/src/types/v1.ts +++ /dev/null @@ -1,4097 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export interface FeeModel { - relayFee: bigint -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AccountId32 = sts.bytes() diff --git a/indexers/account-squid/src/types/v3.ts b/indexers/account-squid/src/types/v3.ts deleted file mode 100644 index 0eda7a4a7..000000000 --- a/indexers/account-squid/src/types/v3.ts +++ /dev/null @@ -1,2472 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export const Public = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Public = Bytes - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * See [`Pallet::update_issuance_params`]. - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::update_domain_allowlist`]. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} diff --git a/indexers/account-squid/tsconfig.json b/indexers/account-squid/tsconfig.json deleted file mode 100644 index f1f63d568..000000000 --- a/indexers/account-squid/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es2020", - "outDir": "lib", - "rootDir": "src", - "strict": true, - "declaration": false, - "sourceMap": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true - }, - "include": ["src"], - "exclude": [ - "node_modules" - ] -} diff --git a/indexers/account-squid/typegen.json b/indexers/account-squid/typegen.json deleted file mode 100644 index 17eca73b8..000000000 --- a/indexers/account-squid/typegen.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "outDir": "src/types", - "specVersions": "gemini3h.jsonl", - "pallets": { - "System": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Utility": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Timestamp": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "TransactionFees": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Balances": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Domains": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Rewards": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Messenger": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Subspace": { - "events": true, - "calls": true, - "storage": true, - "constants": true - } - } -} diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index c5653f4e1..ac1bc3d33 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -8,6 +8,15 @@ type Account @entity { updatedAt: Int! @index } +type Account @entity { + id: ID! @index + from: String! @index + to: String! @index + value: BigInt! + timestamp: Int! @index + createdAt: Int! @index +} + type Block @entity { id: ID! @index height: BigInt! @index diff --git a/indexers/general-squid/.dockerignore b/indexers/general-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/general-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/general-squid/.env.local b/indexers/general-squid/.env.local deleted file mode 100644 index 44b7530cc..000000000 --- a/indexers/general-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=general-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4452 -DB_PORT=5435 diff --git a/indexers/general-squid/.env.sample b/indexers/general-squid/.env.sample deleted file mode 100644 index ad37cc98a..000000000 --- a/indexers/general-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=general-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/general-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/general-squid/.gitignore b/indexers/general-squid/.gitignore deleted file mode 100644 index 03865ae03..000000000 --- a/indexers/general-squid/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/node_modules -/lib -/builds - -/**Versions.json -/**Versions.jsonl - -# IDE files -/.idea -/.env -/data \ No newline at end of file diff --git a/indexers/general-squid/.npmrc b/indexers/general-squid/.npmrc deleted file mode 100644 index 4fd021952..000000000 --- a/indexers/general-squid/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true \ No newline at end of file diff --git a/indexers/general-squid/Dockerfile b/indexers/general-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/general-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/general-squid/Dockerfile-debug b/indexers/general-squid/Dockerfile-debug deleted file mode 100644 index 9b79afe49..000000000 --- a/indexers/general-squid/Dockerfile-debug +++ /dev/null @@ -1,59 +0,0 @@ -FROM node:20-alpine AS node - -FROM node AS node-with-gyp -RUN apk add g++ make python3 - -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build - -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -RUN npm install -g clinic -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -ENV NODE_OPTIONS="--max-old-space-size=8192" - -# Install Clinic.js and create a wrapper script for all profilers -RUN npm install -g clinic && \ - echo '#!/bin/sh' > /usr/local/bin/run-with-clinic.sh && \ - echo 'case "$1" in' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "doctor") shift; clinic doctor --on-port "echo Clinic Doctor is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "bubbleprof") shift; clinic bubbleprof --on-port "echo Clinic Bubbleprof is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "flame") shift; clinic flame --on-port "echo Clinic Flame is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' "heapprofiler") shift; clinic heapprofiler --on-port "echo Clinic Heapprofiler is running. Press Ctrl+C to stop." -- sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo ' *) sqd "$@" ;;' >> /usr/local/bin/run-with-clinic.sh && \ - echo 'esac' >> /usr/local/bin/run-with-clinic.sh && \ - chmod +x /usr/local/bin/run-with-clinic.sh - -# Expose port for Clinic.js dashboard -EXPOSE 9229 - -CMD ["run-with-clinic.sh", "process:prod"] diff --git a/indexers/general-squid/LICENSE b/indexers/general-squid/LICENSE deleted file mode 100644 index 7ef99c6a7..000000000 --- a/indexers/general-squid/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Subsquid Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/indexers/general-squid/README.md b/indexers/general-squid/README.md deleted file mode 100644 index df789a5f4..000000000 --- a/indexers/general-squid/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# General-Squid Indexer - -This directory contains the General-Squid indexer for the Astral project. It is based on a template from Subsquid and has been customized to fit our specific needs for indexing and querying blockchain data. - -## Overview - -General-Squid is tailored to handle general data indexing across the Astral blockchain. It accumulates data from various sources, primarily focusing on account transfers, and serves this data via a GraphQL API. - -## Key Features - -- Indexing of account transfers across the blockchain. -- Access to indexed data through a well-defined GraphQL API. - -## Getting Started - -To get started with the General-Squid indexer, follow these steps: - -1. Ensure that Node.js (16.x or later) and Docker are installed on your machine. -2. Clone the repository and navigate to the General-Squid directory. -3. Install dependencies and start the indexing and query services. - -## References and Resources - -- This indexer is based on the [Squid Substrate template](https://github.com/subsquid-labs/squid-substrate-template) by Subsquid. Visit the original repository for a detailed understanding of the structure and conventions used. - -## Development Guidelines - -Follow these guidelines to contribute to the General-Squid indexer: - -1. Make sure to follow the coding standards and guidelines of the project. -2. Test all changes thoroughly before pushing them to the repository. -3. Document any significant changes or enhancements in the codebase. - -## Additional Information - -For more information on how to deploy and manage your indexer, please consult the [deployment guide](https://docs.subsquid.io/deploy-squid/) provided by Subsquid. - -## License - -The General-Squid indexer is open-sourced under the MIT License, consistent with the rest of the Astral project. diff --git a/indexers/general-squid/assets/README.MD b/indexers/general-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/general-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/general-squid/commands.json b/indexers/general-squid/commands.json deleted file mode 100644 index 294bca5ee..000000000 --- a/indexers/general-squid/commands.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "$schema": "https://cdn.subsquid.io/schemas/commands.json", - "commands": { - "clean": { - "description": "delete all build artifacts", - "cmd": ["npx", "--yes", "rimraf", "lib"] - }, - "build": { - "description": "Build the squid project", - "deps": ["clean"], - "cmd": ["tsc"] - }, - "up": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "up", "-d"] - }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, - "down": { - "description": "Drop a PG database", - "cmd": ["docker", "compose", "down"] - }, - "migration:apply": { - "description": "Apply the DB migrations", - "cmd": ["squid-typeorm-migration", "apply"] - }, - "migration:generate": { - "description": "Generate a DB migration matching the TypeORM entities", - "deps": ["build", "migration:clean"], - "cmd": ["squid-typeorm-migration", "generate"] - }, - "migration:clean": { - "description": "Clean the migrations folder", - "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] - }, - "migration": { - "deps": ["build"], - "cmd": ["squid-typeorm-migration", "generate"], - "hidden": true - }, - "codegen": { - "description": "Generate TypeORM entities from the schema file", - "cmd": ["squid-typeorm-codegen"] - }, - "typegen": { - "description": "Generate data access classes for an substrate metadata", - "cmd": ["squid-substrate-typegen", "./typegen.json"] - }, - "process": { - "description": "Load .env and start the squid processor", - "deps": ["build", "migration:apply"], - "cmd": [ - "node", - "--max-old-space-size=8192", - "--require=dotenv/config", - "lib/main.js" - ] - }, - "process:prod": { - "description": "Start the squid processor", - "deps": ["migration:apply"], - "cmd": ["node", "lib/main.js"], - "hidden": true - }, - "serve": { - "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] - }, - "serve:prod": { - "description": "Start the GraphQL API server with caching and limits", - "cmd": [ - "squid-graphql-server", - "--dumb-cache", - "in-memory", - "--dumb-cache-ttl", - "1000", - "--dumb-cache-size", - "100", - "--dumb-cache-max-age", - "1000" - ] - }, - "check-updates": { - "cmd": [ - "npx", - "--yes", - "npm-check-updates", - "--filter=/subsquid/", - "--upgrade" - ], - "hidden": true - }, - "bump": { - "description": "Bump @subsquid packages to the latest versions", - "deps": ["check-updates"], - "cmd": ["npm", "i", "-f"] - }, - "open": { - "description": "Open a local browser window", - "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] - } - } -} diff --git a/indexers/general-squid/docker-compose-debug.yml b/indexers/general-squid/docker-compose-debug.yml deleted file mode 100644 index c1a2d5e8a..000000000 --- a/indexers/general-squid/docker-compose-debug.yml +++ /dev/null @@ -1,68 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - volumes: - - ./data/db:/var/lib/postgresql/data - - api: - image: squid-processor:debug # Use your custom image - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - - "4350:4350" - command: ["run-with-clinic.sh", "serve:prod"] - depends_on: - - db - - processor: - image: squid-processor:debug # Use your custom image - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - - "3000:3000" - - "9229:9229" # For Clinic.js - volumes: - - ./clinic-output:/squid/.clinic # Mount a volume for Clinic.js output - command: ["run-with-clinic.sh", "doctor", "process:prod"] # Run with Clinic Doctor - depends_on: - - db - - -# To use this setup: - -# First, build your custom Docker image using the Dockerfile-debug file. -# docker build -t squid-processor:debug -f Dockerfile-debug . - -# Save the above docker-compose.yml file. -# Run your application with Docker Compose: -# docker-compose up - - -# This configuration runs the processor with Clinic Doctor. To use different profilers, you can modify the command for the processor service: - -# For Bubbleprof: -# command: ["run-with-clinic.sh", "bubbleprof", "process:prod"] - -# For Flame: -# command: ["run-with-clinic.sh", "flame", "process:prod"] - -# For Heapprofiler: -# command: ["run-with-clinic.sh", "heapprofiler", "process:prod"] - -# To run without profiling: -# command: ["run-with-clinic.sh", "process:prod"] - -# After running, you can find the Clinic.js output in the ./clinic-output directory on your host machine. diff --git a/indexers/general-squid/docker-compose-local.yml b/indexers/general-squid/docker-compose-local.yml deleted file mode 100644 index 52066d512..000000000 --- a/indexers/general-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/general-squid/docker-compose.yml b/indexers/general-squid/docker-compose.yml deleted file mode 100644 index e85660b57..000000000 --- a/indexers/general-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/general-squid/gemini3h.jsonl b/indexers/general-squid/gemini3h.jsonl deleted file mode 100644 index 1bf2a8720..000000000 --- a/indexers/general-squid/gemini3h.jsonl +++ /dev/null @@ -1,5 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} -{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} diff --git a/indexers/general-squid/package-lock.json b/indexers/general-squid/package-lock.json deleted file mode 100644 index a42d8d04b..000000000 --- a/indexers/general-squid/package-lock.json +++ /dev/null @@ -1,5319 +0,0 @@ -{ - "name": "squid", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "squid", - "dependencies": { - "@belopash/typeorm-store": "^1.2.2", - "@polkadot/api": "^10.12.2", - "@polkadot/util": "^12.6.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "rimraf": "^5.0.5", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvadapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", - "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "dataloader": "^2.1.0", - "keyv": "^4.4.0" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dependencies": { - "xss": "^1.0.8" - } - }, - "node_modules/@belopash/typeorm-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.2.2.tgz", - "integrity": "sha512-SIoCsgCq1s4oCEoMecmfqP0muup295Uh/5AV8wL+DfeHct8041hzCNCq011lN/eQDwsWSlO4Ya44rGC7s6IqoQ==", - "dependencies": { - "@subsquid/logger": "^1.3.1", - "@subsquid/util-internal": "^2.5.2" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.2.1", - "pg": "^8.11.3", - "typeorm": "^0.3.16" - } - }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-2.5.2.tgz", - "integrity": "sha512-N7lfZdWEkM35jG5wdGYx25TJKGGLMOx9VInSeRhW9T/3BEmHAuSWI2mIIYnZ8w5L041V8HGo61ijWF6qsXvZjg==" - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@keyv/redis": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", - "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", - "dependencies": { - "ioredis": "^5.3.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@polkadot-api/client": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/client/-/client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-WDSMp8zKNdp6/MhbrkvS1QFn7G9sOrjv8CDHLg6SrH3MlHWAysEWRgAz6U0I9wKklmXR1tMZR+zJ3NuiTAE10A==", - "optional": true, - "dependencies": { - "@polkadot-api/metadata-builders": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-bindings": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - }, - "peerDependencies": { - "rxjs": ">=7.8.0" - } - }, - "node_modules/@polkadot-api/json-rpc-provider": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-772gcl5MXdmIvXuhJwVqM/APp+6f6ocRGfzcYoFfdghJ4A68l9ir1SDny691vcJXE8CQ7NAcz5Gl3t1Gz1MIqg==", - "optional": true - }, - "node_modules/@polkadot-api/json-rpc-provider-proxy": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-hzupcyUtObK6W1dyyeEp4BJBHRiGecB6t6YJQPk78UY1PnLsqFiboNh5doAywf+DoGBT1YXlxbYBAE3Wg43c9w==", - "optional": true - }, - "node_modules/@polkadot-api/metadata-builders": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-T4t2O5Nhr8yrfJtKF5+JaxGO2TY7uFxQK0N/gDp7rDglvluiWiAl5nRvXhFzI03JOAtJ7Ey6O+ezEL1YwCjbwA==", - "optional": true, - "dependencies": { - "@polkadot-api/substrate-bindings": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0" - } - }, - "node_modules/@polkadot-api/substrate-bindings": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-oAOAwYG7iW2BUgLMzCo//pq+8X/zm5BxDUgJFtG0vPb3leUMd5kKnJcn7hWv9H4vLhyicAVoOPJrEPd/Kzocag==", - "optional": true, - "dependencies": { - "@noble/hashes": "^1.3.1", - "@polkadot-api/utils": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@scure/base": "^1.1.1", - "scale-ts": "^1.4.3" - } - }, - "node_modules/@polkadot-api/substrate-client": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-rHLhKLJxv9CSplu+tXOgpxBwYDXCh32xwbJcZqxMWlXkjoNI2OB9hulX/3GJ0NE/ngMh3DV1hrqNLmyc/8PU+A==", - "optional": true - }, - "node_modules/@polkadot-api/utils": { - "version": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0.tgz", - "integrity": "sha512-H7hOfilvx65wYxMjAI130rK34GcAPzMEuoP5W693N0PsXYc1QeoEHSza5NSgoN1U4jGNzDBoxu0al2WGKo1B5g==", - "optional": true - }, - "node_modules/@polkadot/api": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-10.12.2.tgz", - "integrity": "sha512-A03hpnbIko6CGC3R/rQBOg0aXNR5HFkynL2t5ueqzmYbxFQWx1e8gMXbJZnbVlwtwJJ6FIxzOA6mmZQr+yiLrw==", - "dependencies": { - "@polkadot/api-augment": "10.12.2", - "@polkadot/api-base": "10.12.2", - "@polkadot/api-derive": "10.12.2", - "@polkadot/keyring": "^12.6.2", - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/rpc-core": "10.12.2", - "@polkadot/rpc-provider": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", - "@polkadot/types-known": "10.12.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "eventemitter3": "^5.0.1", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.12.2.tgz", - "integrity": "sha512-bIz/HVKRcL5pJCg37cnf8ApWHJbRjAQBEvCubSDOquay/i25jG6Rs97zL4ptXHsp0md/TDeUQVloF5Feqn3/iQ==", - "dependencies": { - "@polkadot/api-base": "10.12.2", - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-base": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.12.2.tgz", - "integrity": "sha512-pkK1RNG0w5seb6BDwZbVZF+Q6rm7SiSXOa2WQQR9UbjptP7eA8bRtxVSOA4fb4lxbOjJXamCFimXaNc1B1XRLA==", - "dependencies": { - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/util": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-derive": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.12.2.tgz", - "integrity": "sha512-TWUB+V31NrzxF+Ep7GucTyV20SbP0mUvDQGEannkENCTQpbL0JXIi1PHDCBNuShzdr1m6eQ5inLx1RmxvoOfDg==", - "dependencies": { - "@polkadot/api": "10.12.2", - "@polkadot/api-augment": "10.12.2", - "@polkadot/api-base": "10.12.2", - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/keyring": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", - "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==", - "dependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/util-crypto": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/util-crypto": "12.6.2" - } - }, - "node_modules/@polkadot/networks": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", - "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==", - "dependencies": { - "@polkadot/util": "12.6.2", - "@substrate/ss58-registry": "^1.44.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.12.2.tgz", - "integrity": "sha512-JXifdUrt1SfCQst7E5ifNVHiroonmG6CN0rf7i2eSLJt6u4/v90RpaNogHrMumN3ZIV0cLwV19eb6tYxFQo/GA==", - "dependencies": { - "@polkadot/rpc-core": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-core": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.12.2.tgz", - "integrity": "sha512-p0caB9O8uv5aJQwmq80l3mgdIX46N4t+YVeKDcN8tSyiLJ+2xYuHAtRfklDH5OewvnYdWjzqFx1LDmXoPtFh2g==", - "dependencies": { - "@polkadot/rpc-augment": "10.12.2", - "@polkadot/rpc-provider": "10.12.2", - "@polkadot/types": "10.12.2", - "@polkadot/util": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-provider": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.12.2.tgz", - "integrity": "sha512-RhGSpDRHqp0NvznmTR11aRyO99GgKeV1bFkXw8JPsvuDkazROsS2XNmNXYFt8TZYGmcBxryVOw4neEfiyXljHw==", - "dependencies": { - "@polkadot/keyring": "^12.6.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-support": "10.12.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "@polkadot/x-fetch": "^12.6.2", - "@polkadot/x-global": "^12.6.2", - "@polkadot/x-ws": "^12.6.2", - "eventemitter3": "^5.0.1", - "mock-socket": "^9.3.1", - "nock": "^13.5.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@substrate/connect": "0.8.7" - } - }, - "node_modules/@polkadot/types": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-10.12.2.tgz", - "integrity": "sha512-4iSmKpJ+PtC/n4jVgqRksc4NsGCYFE79tyjrb1W9ewYaaLhAwq7MW1TZY8Em08WwCmQSjxqcp9nYCs2plAJLEA==", - "dependencies": { - "@polkadot/keyring": "^12.6.2", - "@polkadot/types-augment": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-augment": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.12.2.tgz", - "integrity": "sha512-g5YvuXclkefe4dqpJXWesv1ksNeSsgP2PT4qdW+atkayTiCJIFYM2m6scNn+iZ98TWx6B5OOjMUQmRgiNOrpBA==", - "dependencies": { - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-codec": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.12.2.tgz", - "integrity": "sha512-9DHBVvixuc0CNTBANsxGFITWcpUxfL5whL0h/tUA3yL/kT5/3Rp3E+GgEOJhwFAwMRHlNY7ll4lA9K2h+leELQ==", - "dependencies": { - "@polkadot/util": "^12.6.2", - "@polkadot/x-bigint": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-create": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.12.2.tgz", - "integrity": "sha512-SZsnB3hePa7zQJpeCqK7rGpiptLr8BpVALU3TiXiY96Wg4aafA5pAdAz+TOp/hskQP5h9X42WdkMhkabFLtGiA==", - "dependencies": { - "@polkadot/types-codec": "10.12.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-known": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.12.2.tgz", - "integrity": "sha512-N8V82MZMjDZVXMzyDy4HEpwr8plht5VSYY0X6OJp+TSF+Y63bxZkHwpY14vq7d8eb57Ze8A8HKTuMfaP8bPC2g==", - "dependencies": { - "@polkadot/networks": "^12.6.2", - "@polkadot/types": "10.12.2", - "@polkadot/types-codec": "10.12.2", - "@polkadot/types-create": "10.12.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-support": { - "version": "10.12.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.12.2.tgz", - "integrity": "sha512-0gIbphB94dyONaq0wvPaGeQ8IMURVOURDnm8yPXvqULFjr7E0PKVgG6rHAvcRl/D7T63WqjqIih5oDAfM/1U2Q==", - "dependencies": { - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/util": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", - "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==", - "dependencies": { - "@polkadot/x-bigint": "12.6.2", - "@polkadot/x-global": "12.6.2", - "@polkadot/x-textdecoder": "12.6.2", - "@polkadot/x-textencoder": "12.6.2", - "@types/bn.js": "^5.1.5", - "bn.js": "^5.2.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/util-crypto": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz", - "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==", - "dependencies": { - "@noble/curves": "^1.3.0", - "@noble/hashes": "^1.3.3", - "@polkadot/networks": "12.6.2", - "@polkadot/util": "12.6.2", - "@polkadot/wasm-crypto": "^7.3.2", - "@polkadot/wasm-util": "^7.3.2", - "@polkadot/x-bigint": "12.6.2", - "@polkadot/x-randomvalues": "12.6.2", - "@scure/base": "^1.1.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2" - } - }, - "node_modules/@polkadot/wasm-bridge": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz", - "integrity": "sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==", - "dependencies": { - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz", - "integrity": "sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==", - "dependencies": { - "@polkadot/wasm-bridge": "7.3.2", - "@polkadot/wasm-crypto-asmjs": "7.3.2", - "@polkadot/wasm-crypto-init": "7.3.2", - "@polkadot/wasm-crypto-wasm": "7.3.2", - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-asmjs": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz", - "integrity": "sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-init": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz", - "integrity": "sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==", - "dependencies": { - "@polkadot/wasm-bridge": "7.3.2", - "@polkadot/wasm-crypto-asmjs": "7.3.2", - "@polkadot/wasm-crypto-wasm": "7.3.2", - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-wasm": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz", - "integrity": "sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==", - "dependencies": { - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/wasm-util": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz", - "integrity": "sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/x-bigint": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", - "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-fetch": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", - "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "node-fetch": "^3.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-global": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", - "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-randomvalues": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", - "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/wasm-util": "*" - } - }, - "node_modules/@polkadot/x-textdecoder": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", - "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-textencoder": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", - "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-ws": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", - "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2", - "ws": "^8.15.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" - }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, - "node_modules/@subsquid/graphiql-console": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", - "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" - }, - "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", - "dependencies": { - "@apollo/utils.keyvadapter": "~1.1.2", - "@apollo/utils.keyvaluecache": "~1.0.2", - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/schema": "^10.0.2", - "@graphql-tools/utils": "^10.0.11", - "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "apollo-server-plugin-response-cache": "~3.7.1", - "commander": "^11.1.0", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-ws": "^5.14.2", - "keyv": "~4.5.4", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "squid-graphql-server": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0", - "class-validator": "^0.14.0", - "type-graphql": "^1.2.0-rc.1", - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - }, - "class-validator": { - "optional": true - }, - "type-graphql": { - "optional": true - }, - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "node-fetch": "^3.3.2" - } - }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/logger": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.2.tgz", - "integrity": "sha512-5YPdeRu0WD9iBak+r3S8blBeg2uyliPUlmCjj/ZE6dpXmXsSN9T+ZYrNeDr9eAbRV7OXVI49lSfCuAGenFcYjQ==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2", - "supports-color": "^8.1.1" - } - }, - "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "commander": "^11.1.0", - "deep-equal": "^2.2.3", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-parse-resolve-info": "^4.14.0", - "graphql-ws": "^5.14.2", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "openreader": "bin/main.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - } - } - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "websocket": "^1.0.34" - } - }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/scale-codec": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", - "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2" - } - }, - "node_modules/@subsquid/scale-type-system": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", - "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, - "dependencies": { - "@subsquid/util-internal": "^3.0.0" - }, - "peerDependencies": { - "@subsquid/scale-codec": "^4.0.1" - } - }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/ss58": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", - "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", - "dependencies": { - "@subsquid/ss58-codec": "^1.2.3", - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/ss58-codec": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", - "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", - "dependencies": { - "base-x": "^4.0.0", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-xxhash": "^1.2.2", - "@substrate/calc": "^0.2.8", - "blake2b": "^2.1.4" - }, - "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-timeout": "^2.3.2" - }, - "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" - } - }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-metadata-explorer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", - "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", - "dev": true, - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.5.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-metadata-explorer": "bin/run.js", - "substrate-metadata-explorer": "bin/run.js" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", - "peer": true, - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "@subsquid/util-xxhash": "^1.2.2", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", - "dev": true, - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-config": "^2.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-typegen": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", - "dev": true, - "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-typeorm-codegen": "bin/run.js" - } - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-config": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", - "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "@subsquid/util-naming": "^1.2.2" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/typeorm-migration": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", - "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "commander": "^11.1.0", - "dotenv": "^16.3.1" - }, - "bin": { - "squid-typeorm-migration": "bin/squid-typeorm-migration", - "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", - "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", - "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", - "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-store": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.2.6.tgz", - "integrity": "sha512-fsQTEf9QUXny1qb3qEoH5U3aPYhOtN7fE+3K62w6qVK0h+/PJAtS0w16MeYtDlEQbzYud8ttmVSagV1A93qnRA==", - "peer": true, - "dependencies": { - "@subsquid/typeorm-config": "^4.0.0", - "@subsquid/util-internal": "^3.0.0" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" - }, - "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" - }, - "peerDependenciesMeta": { - "@subsquid/logger": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-binary-heap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", - "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" - }, - "node_modules/@subsquid/util-internal-code-printer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", - "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" - }, - "node_modules/@subsquid/util-internal-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", - "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.3.0", - "jsonc-parser": "^3.2.0" - } - }, - "node_modules/@subsquid/util-internal-counters": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", - "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" - }, - "node_modules/@subsquid/util-internal-hex": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", - "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" - }, - "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", - "dependencies": { - "stoppable": "^1.1.0" - } - }, - "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@subsquid/util-internal-archive-client": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", - "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" - }, - "peerDependencies": { - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0" - } - }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-read-lines": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", - "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", - "dev": true - }, - "node_modules/@subsquid/util-internal-ts-node": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", - "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" - }, - "node_modules/@subsquid/util-naming": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", - "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", - "dependencies": { - "camelcase": "^6.3.0", - "inflected": "^2.1.0" - } - }, - "node_modules/@subsquid/util-timeout": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", - "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" - }, - "node_modules/@subsquid/util-xxhash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", - "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", - "dependencies": { - "xxhash-wasm": "^1.0.2", - "xxhashjs": "^0.2.2" - } - }, - "node_modules/@substrate/calc": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", - "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" - }, - "node_modules/@substrate/connect": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.7.tgz", - "integrity": "sha512-kJLSqiwsAC8eHsPBwUyVpp6cogs1b/4jxTiRfoWbbndmSSEqn3qkcwmYPmZud4pyJFX7FMXwzH28XaPRBGTaQQ==", - "optional": true, - "dependencies": { - "@substrate/connect-extension-protocol": "^2.0.0", - "@substrate/connect-known-chains": "^1.0.7", - "@substrate/light-client-extension-helpers": "^0.0.3", - "smoldot": "2.0.21" - } - }, - "node_modules/@substrate/connect-extension-protocol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz", - "integrity": "sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==", - "optional": true - }, - "node_modules/@substrate/connect-known-chains": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.1.2.tgz", - "integrity": "sha512-XvyemTVqon+6EF2G7QL0fEXxjuz3nUNFgFV0TSWhSVpPb+Sfs+vfipbEZxGNouxvjCoJdr6CF0rwgGsrrKOnAA==", - "optional": true - }, - "node_modules/@substrate/light-client-extension-helpers": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.3.tgz", - "integrity": "sha512-AkWX7Xpn0u8NdR7qAEwFzeobLvHiviqmsUTvN6wge8Rnlbk01Ftm2Ol8vdN6IhjWPTepF5MggibQVXKBUtZnZw==", - "optional": true, - "dependencies": { - "@polkadot-api/client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/json-rpc-provider": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/json-rpc-provider-proxy": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@polkadot-api/substrate-client": "0.0.1-12c4b0432a814086c3c1a3b8052b31c72c2c9ad3.1.0", - "@substrate/connect-extension-protocol": "^2.0.0", - "@substrate/connect-known-chains": "^1.0.7", - "rxjs": "^7.8.1" - }, - "peerDependencies": { - "smoldot": "2.x" - } - }, - "node_modules/@substrate/ss58-registry": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.47.0.tgz", - "integrity": "sha512-6kuIJedRcisUJS2pgksEH2jZf3hfSIVzqtFzs/AyjTW3ETbMg5q1Bb7VWa0WYaT6dTrEXp/6UoXM5B9pSIUmcw==" - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" - }, - "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/apollo-server-core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/apollo-server-core/node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.13.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-response-cache": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", - "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", - "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-plugin-base": "^3.6.3", - "apollo-server-types": "^3.6.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, - "node_modules/blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-highlight/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-parse-resolve-info": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", - "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", - "dependencies": { - "debug": "^4.1.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "peerDependencies": { - "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflected": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", - "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ioredis/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ioredis/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mock-socket": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", - "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/nock": { - "version": "13.5.4", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", - "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/nock/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nock/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scale-ts": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.0.tgz", - "integrity": "sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==", - "optional": true - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", - "dependencies": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/smoldot": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.21.tgz", - "integrity": "sha512-XFpf3CQZ2BbFwVqKSyJHP7mbTDJxT3saRr/WfnfgWv+pbmA/J0e/LdfV/3A+jg7gNTEG06EAiDPtzN8ouXTLLw==", - "optional": true, - "dependencies": { - "ws": "^8.8.1" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typeorm": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", - "buffer": "^6.0.3", - "chalk": "^4.1.2", - "cli-highlight": "^2.1.11", - "dayjs": "^1.11.9", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^10.3.10", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.2.1", - "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">=16.13.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^5.8.0", - "mssql": "^9.1.1 || ^10.0.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^6.3.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", - "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - } - } -} diff --git a/indexers/general-squid/package.json b/indexers/general-squid/package.json deleted file mode 100644 index 09532153a..000000000 --- a/indexers/general-squid/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.2.2", - "@polkadot/api": "^10.12.2", - "@polkadot/util": "^12.6.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "rimraf": "^5.0.5", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/general-squid/schema.graphql b/indexers/general-squid/schema.graphql deleted file mode 100644 index c29c0a64d..000000000 --- a/indexers/general-squid/schema.graphql +++ /dev/null @@ -1,124 +0,0 @@ -type Block @entity { - id: ID! @index - height: Int! @index - hash: String! @index - parentHash: String! - stateRoot: String! - extrinsicsRoot: String! - specId: String! - specName: String! - specVersion: Int! @index - implName: String! - implVersion: Int! - timestamp: DateTime! @index - validator: Bytes @index - extrinsicsCount: Int! - callsCount: Int! - eventsCount: Int! - logsCount: Int! - spacePledged: BigInt! - blockchainSize: BigInt! - author: String - extrinsics: [Extrinsic!]! - @derivedFrom(field: "block") - @cardinality(value: 1000) - events: [Event!]! @derivedFrom(field: "block") @cardinality(value: 1000) - calls: [Call!]! @derivedFrom(field: "block") @cardinality(value: 1000) - logs: [Log!]! @derivedFrom(field: "block") @cardinality(value: 1000) -} - -type ExtrinsicSignature { - address: JSON - signature: JSON - signedExtensions: JSON -} - -type ExtrinsicModuleName @entity { - id: ID! @index - name: String! @index -} - -type Extrinsic @entity { - id: ID! @index - block: Block! - call: Call - index: Int! - version: Int! - signature: ExtrinsicSignature - tip: BigInt - fee: BigInt - success: Boolean! @index - error: JSON - hash: String! @index - timestamp: DateTime! @index - name: String! @index - signer: String - args: JSON - events: [Event] @derivedFrom(field: "extrinsic") - calls: [Call!] @derivedFrom(field: "extrinsic") -} - -type EventModuleName @entity { - id: ID! @index - name: String! @index -} - -type Event @entity @index(fields: ["id", "pallet", "name"]) { - id: ID! @index - block: Block - extrinsic: Extrinsic - call: Call - index: Int! - phase: String! - pallet: String! @index - name: String! @index - timestamp: DateTime! @index - pos: Int - args: JSON - argsStr: [String] -} - -type Call @entity @index(fields: ["id", "pallet", "name"]) { - id: ID! @index - block: Block! - extrinsic: Extrinsic! - parent: Call - address: [Int!]! - success: Boolean! @index - error: JSON - pallet: String! @index - name: String! - timestamp: DateTime! @index - signer: String @index - args: JSON - argsStr: [String] - subcalls: [Call]! @derivedFrom(field: "parent") - events: [Event]! @derivedFrom(field: "call") - pos: Int -} - -type Log @entity { - id: ID! @index - kind: String! @index - value: JSON - block: Block! -} - -enum CounterLevel { - Global - Pallet - Item -} - -enum ItemType { - Extrinsics - Calls - Events -} - -type ItemsCounter @entity { - id: ID! @index - type: ItemType! @index - level: CounterLevel! @index - total: Int! @index -} diff --git a/indexers/general-squid/scripts/docker-run.sh b/indexers/general-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/general-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/general-squid/scripts/install-sqd.sh b/indexers/general-squid/scripts/install-sqd.sh deleted file mode 100644 index 860d58c15..000000000 --- a/indexers/general-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/general-squid general-squid - - cd general-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/general-squid/scripts/sub-client.js b/indexers/general-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/general-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/general-squid/squid.yaml b/indexers/general-squid/squid.yaml deleted file mode 100644 index 268c443a7..000000000 --- a/indexers/general-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: general-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/general-squid/src/blocks/databaseOperations.ts b/indexers/general-squid/src/blocks/databaseOperations.ts deleted file mode 100644 index 5a06bdeb0..000000000 --- a/indexers/general-squid/src/blocks/databaseOperations.ts +++ /dev/null @@ -1,181 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import { decodeHex } from "@subsquid/substrate-processor"; -import { randomUUID } from "crypto"; -import * as model from "../model"; -import { - BlockHeader, - Call, - Event, - Extrinsic, - ProcessorContext, -} from "../processor"; -import { - blockchainHistorySize, - totalSpacePledged, -} from "../types/transaction-fees/constants"; -import { decodeLog } from "./utils"; - -export async function saveBlock( - ctx: ProcessorContext, - block: BlockHeader, - author: string, - extrinsicsCount: number, - eventsCount: number, - logsCount: number, - callsCount: number -): Promise { - const spacePledged = totalSpacePledged.v0.get(block); - const historySize = blockchainHistorySize.v0.get(block); - - const entity = new model.Block({ - id: block.id, - height: block.height, - hash: block.hash, - parentHash: block.parentHash, - stateRoot: block.stateRoot, - extrinsicsRoot: block.extrinsicsRoot, - specId: `${block.specName}@${block.specVersion}`, - specName: block.specName, - specVersion: block.specVersion, - implName: block.implName, - implVersion: block.implVersion, - timestamp: new Date(block.timestamp ?? 0), - validator: block.validator ? decodeHex(block.validator) : undefined, - spacePledged, - blockchainSize: historySize, - author, - extrinsicsCount, - callsCount, - eventsCount, - logsCount, - }); - - await ctx.store.insert(entity); - - // return the saved block - return entity; -} - -export async function saveExtrinsic( - ctx: ProcessorContext, - block: model.Block, - extrinsic: Extrinsic -) { - const entity = new model.Extrinsic({ - id: extrinsic.id, - block, - index: extrinsic.index, - version: extrinsic.version, - signature: new model.ExtrinsicSignature(extrinsic.signature), - tip: extrinsic.tip, - fee: extrinsic.fee, - success: extrinsic.success, - error: extrinsic.error, - hash: extrinsic.hash, - timestamp: new Date(block.timestamp ?? 0), - args: extrinsic.call?.args, - name: extrinsic.call?.name, - }); - - if (extrinsic.call?.name) { - const moduleNameEntity = new model.ExtrinsicModuleName({ - id: randomUUID(), - name: extrinsic.call.name, - }); - - await ctx.store.insert(moduleNameEntity); - } - - await ctx.store.insert(entity); -} - -export async function saveCall( - ctx: ProcessorContext, - block: model.Block, - call: Call -) { - const extrinsic = await ctx.store.getOrFail( - model.Extrinsic, - call.getExtrinsic().id - ); - - const parent = call.parentCall - ? await ctx.store.getOrFail(model.Call, call.parentCall.id) - : undefined; - - const [pallet, name] = call.name.split("."); - - const entity = new model.Call({ - id: call.id, - block, - extrinsic, - parent, - address: call.address, - success: call.success, - error: call.error, - pallet, - name, - timestamp: new Date(block.timestamp ?? 0), - args: call.args, - }); - await ctx.store.insert(entity); - - if (call.address.length == 0) { - extrinsic.call = entity; - await ctx.store.upsert(extrinsic); - } -} - -export async function saveEvent( - ctx: ProcessorContext, - block: model.Block, - event: Event -) { - const extrinsic = event.extrinsic - ? await ctx.store.getOrFail(model.Extrinsic, event.extrinsic.id) - : undefined; - const call = event.call - ? await ctx.store.getOrFail(model.Call, event.call.id) - : undefined; - - const [pallet, name] = event.name.split("."); - - const entity = new model.Event({ - id: event.id, - block, - extrinsic, - call, - index: event.index, - phase: event.phase, - pallet, - name, - timestamp: new Date(block.timestamp ?? 0), - args: event.args, - }); - await ctx.store.insert(entity); - - const moduleNameEntity = new model.EventModuleName({ - id: randomUUID(), - name: event.name, - }); - - await ctx.store.insert(moduleNameEntity); -} - -export async function saveLog( - ctx: ProcessorContext, - block_: BlockHeader, - log: any, - index: number -) { - const block = await ctx.store.getOrFail(model.Block, block_.id); - const entity = new model.Log({ - id: `${block.id}-${index}`, - kind: log.__kind, - // uncast to access 'value' prop, which is not present on all DigestItems - // eslint-disable-next-line @typescript-eslint/no-explicit-any - value: decodeLog(log.value), - block, - }); - await ctx.store.insert(entity); -} diff --git a/indexers/general-squid/src/blocks/types.ts b/indexers/general-squid/src/blocks/types.ts deleted file mode 100644 index f0e59898e..000000000 --- a/indexers/general-squid/src/blocks/types.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Struct, u64 } from "@polkadot/types"; -import { AccountId32 } from "@polkadot/types/interfaces"; - -interface Solution extends Struct { - readonly public_key: AccountId32; - readonly reward_address: AccountId32; -} - -export interface SubPreDigest extends Struct { - readonly slot: u64; - readonly solution: Solution; -} - -export const BlockChainTypes = { - Solution: { - public_key: "AccountId32", - reward_address: "AccountId32", - }, - SubPreDigest: { - slot: "u64", - solution: "Solution", - }, -}; diff --git a/indexers/general-squid/src/blocks/utils.ts b/indexers/general-squid/src/blocks/utils.ts deleted file mode 100644 index 2aa54b22b..000000000 --- a/indexers/general-squid/src/blocks/utils.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ApiPromise } from "@polkadot/api"; -import { hexToString } from "@polkadot/util"; -import { BlockHeader } from "@subsquid/substrate-processor"; -import { digest } from "../types/system/storage"; -import { DigestItem_PreRuntime } from "../types/v1"; -import { SubPreDigest } from "./types"; - -/** - * Converts a SCALE-encoded log into a human-readable format - * @param {null | Uint8Array | Uint8Array[]} value - SCALE-encoded log - * @return {null | {data: string} | {engine: string, data: string}} - human-readable log - */ -export function decodeLog( - value: null | Uint8Array | Uint8Array[] | [string, string] -) { - if (!value) return null; - - if (Array.isArray(value)) { - const engine = hexToString(value[0].toString()); - const data = value[1]; - - return { - engine, - data, - }; - } - - return { data: value }; -} - -export async function getBlockAuthor(block: BlockHeader, api: ApiPromise) { - const digestLogs = await digest.v0.get(block); - - const preRuntimeRaw = digestLogs?.logs.find( - (digestItem) => digestItem.__kind === "PreRuntime" - ); - - if (!preRuntimeRaw) return ""; - - const value = decodeLog((preRuntimeRaw as DigestItem_PreRuntime).value); - const type: SubPreDigest = api.registry.createType( - "SubPreDigest", - value?.data - ); - - return type.solution.reward_address.toString(); -} diff --git a/indexers/general-squid/src/config/processorConfig.ts b/indexers/general-squid/src/config/processorConfig.ts deleted file mode 100644 index 83cab4cc7..000000000 --- a/indexers/general-squid/src/config/processorConfig.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { SubstrateBatchProcessor } from "@subsquid/substrate-processor"; - -export interface ProcessorConfig { - chainName: string; - prefix?: number | string; - rpcEndpoint: Parameters["setRpcEndpoint"]>[0]; - blockRange?: Parameters["setBlockRange"]>[0]; -} diff --git a/indexers/general-squid/src/main.ts b/indexers/general-squid/src/main.ts deleted file mode 100644 index ccd130554..000000000 --- a/indexers/general-squid/src/main.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { ApiPromise, WsProvider } from "@polkadot/api"; - -import { - saveBlock, - saveCall, - saveEvent, - saveExtrinsic, - saveLog, -} from "./blocks/databaseOperations"; -import { BlockChainTypes as types } from "./blocks/types"; -import { getBlockAuthor } from "./blocks/utils"; -import { Block, BlockHeader, ProcessorContext, processor } from "./processor"; -import { digest } from "./types/system/storage"; - -processor.run(new TypeormDatabaseWithCache(), async (ctx) => { - const api = await createApi(); - - for (const blockData of ctx.blocks) { - logBlockProcessing(ctx, blockData); - - const blockAuthor = await getBlockAuthor(blockData.header, api); - await processBlock(ctx, blockData, blockAuthor); - } - - logCompletion(ctx); -}); - -// Create API instance -async function createApi() { - const provider = new WsProvider(process.env.RPC_ENDPOINT); - return ApiPromise.create({ provider, types }); -} - -// Log information about the block being processed -function logBlockProcessing( - ctx: ProcessorContext, - { header, calls, events, extrinsics }: Block -) { - ctx.log.child( - `block ${header.height}: extrinsics - ${extrinsics.length}, calls - ${calls.length}, events - ${events.length}` - ); -} - -// Log the completion of block processing -function logCompletion(ctx: ProcessorContext) { - ctx.log.child("blocks").info(`added: ${ctx.blocks.length} blocks`); -} - -// Process digest logs for a block -async function processDigestLogs( - ctx: ProcessorContext, - block: BlockHeader -) { - const digestLogs = await digest.v0.get(block); - - if (digestLogs) { - for (const [index, log] of digestLogs.logs.entries()) { - await saveLog(ctx, block, log, index); - } - } -} - -// Process and save block data -async function processBlock( - ctx: ProcessorContext, - { header, calls, events, extrinsics }: Block, - blockAuthor: string -) { - let savedBlock = await saveBlock( - ctx, - header, - blockAuthor, - extrinsics.length, - events.length, - 0, - calls.length - ); - - await Promise.all( - extrinsics.map((extrinsic) => saveExtrinsic(ctx, savedBlock, extrinsic)) - ); - - await Promise.all( - calls.reverse().map((call) => saveCall(ctx, savedBlock, call)) - ); - - await Promise.all(events.map((event) => saveEvent(ctx, savedBlock, event))); - - await processDigestLogs(ctx, header); -} diff --git a/indexers/general-squid/src/model/generated/_counterLevel.ts b/indexers/general-squid/src/model/generated/_counterLevel.ts deleted file mode 100644 index fd3c55e12..000000000 --- a/indexers/general-squid/src/model/generated/_counterLevel.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum CounterLevel { - Global = "Global", - Pallet = "Pallet", - Item = "Item", -} diff --git a/indexers/general-squid/src/model/generated/_extrinsicSignature.ts b/indexers/general-squid/src/model/generated/_extrinsicSignature.ts deleted file mode 100644 index a0c4a71c7..000000000 --- a/indexers/general-squid/src/model/generated/_extrinsicSignature.ts +++ /dev/null @@ -1,49 +0,0 @@ -import assert from "assert" -import * as marshal from "./marshal" - -export class ExtrinsicSignature { - private _address!: unknown | undefined | null - private _signature!: unknown | undefined | null - private _signedExtensions!: unknown | undefined | null - - constructor(props?: Partial>, json?: any) { - Object.assign(this, props) - if (json != null) { - this._address = json.address - this._signature = json.signature - this._signedExtensions = json.signedExtensions - } - } - - get address(): unknown | undefined | null { - return this._address - } - - set address(value: unknown | undefined | null) { - this._address = value - } - - get signature(): unknown | undefined | null { - return this._signature - } - - set signature(value: unknown | undefined | null) { - this._signature = value - } - - get signedExtensions(): unknown | undefined | null { - return this._signedExtensions - } - - set signedExtensions(value: unknown | undefined | null) { - this._signedExtensions = value - } - - toJSON(): object { - return { - address: this.address, - signature: this.signature, - signedExtensions: this.signedExtensions, - } - } -} diff --git a/indexers/general-squid/src/model/generated/_itemType.ts b/indexers/general-squid/src/model/generated/_itemType.ts deleted file mode 100644 index 4888f0722..000000000 --- a/indexers/general-squid/src/model/generated/_itemType.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum ItemType { - Extrinsics = "Extrinsics", - Calls = "Calls", - Events = "Events", -} diff --git a/indexers/general-squid/src/model/generated/block.model.ts b/indexers/general-squid/src/model/generated/block.model.ts deleted file mode 100644 index 1537e36b2..000000000 --- a/indexers/general-squid/src/model/generated/block.model.ts +++ /dev/null @@ -1,90 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Extrinsic} from "./extrinsic.model" -import {Event} from "./event.model" -import {Call} from "./call.model" -import {Log} from "./log.model" - -@Entity_() -export class Block { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - height!: number - - @Index_() - @Column_("text", {nullable: false}) - hash!: string - - @Column_("text", {nullable: false}) - parentHash!: string - - @Column_("text", {nullable: false}) - stateRoot!: string - - @Column_("text", {nullable: false}) - extrinsicsRoot!: string - - @Column_("text", {nullable: false}) - specId!: string - - @Column_("text", {nullable: false}) - specName!: string - - @Index_() - @Column_("int4", {nullable: false}) - specVersion!: number - - @Column_("text", {nullable: false}) - implName!: string - - @Column_("int4", {nullable: false}) - implVersion!: number - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("bytea", {nullable: true}) - validator!: Uint8Array | undefined | null - - @Column_("int4", {nullable: false}) - extrinsicsCount!: number - - @Column_("int4", {nullable: false}) - callsCount!: number - - @Column_("int4", {nullable: false}) - eventsCount!: number - - @Column_("int4", {nullable: false}) - logsCount!: number - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - spacePledged!: bigint - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - blockchainSize!: bigint - - @Column_("text", {nullable: true}) - author!: string | undefined | null - - @OneToMany_(() => Extrinsic, e => e.block) - extrinsics!: Extrinsic[] - - @OneToMany_(() => Event, e => e.block) - events!: Event[] - - @OneToMany_(() => Call, e => e.block) - calls!: Call[] - - @OneToMany_(() => Log, e => e.block) - logs!: Log[] -} diff --git a/indexers/general-squid/src/model/generated/call.model.ts b/indexers/general-squid/src/model/generated/call.model.ts deleted file mode 100644 index 44cc45e5c..000000000 --- a/indexers/general-squid/src/model/generated/call.model.ts +++ /dev/null @@ -1,67 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_, OneToMany as OneToMany_} from "typeorm" -import {Block} from "./block.model" -import {Extrinsic} from "./extrinsic.model" -import {Event} from "./event.model" - -@Index_(["id", "pallet", "name"], {unique: false}) -@Entity_() -export class Call { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block - - @Index_() - @ManyToOne_(() => Extrinsic, {nullable: true}) - extrinsic!: Extrinsic - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - parent!: Call | undefined | null - - @Column_("int4", {array: true, nullable: false}) - address!: (number)[] - - @Index_() - @Column_("bool", {nullable: false}) - success!: boolean - - @Column_("jsonb", {nullable: true}) - error!: unknown | undefined | null - - @Index_() - @Column_("text", {nullable: false}) - pallet!: string - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - signer!: string | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @Column_("text", {array: true, nullable: true}) - argsStr!: (string | undefined | null)[] | undefined | null - - @OneToMany_(() => Call, e => e.parent) - subcalls!: Call[] - - @OneToMany_(() => Event, e => e.call) - events!: Event[] - - @Column_("int4", {nullable: true}) - pos!: number | undefined | null -} diff --git a/indexers/general-squid/src/model/generated/event.model.ts b/indexers/general-squid/src/model/generated/event.model.ts deleted file mode 100644 index 28b65cc30..000000000 --- a/indexers/general-squid/src/model/generated/event.model.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import {Block} from "./block.model" -import {Extrinsic} from "./extrinsic.model" -import {Call} from "./call.model" - -@Index_(["id", "pallet", "name"], {unique: false}) -@Entity_() -export class Event { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block | undefined | null - - @Index_() - @ManyToOne_(() => Extrinsic, {nullable: true}) - extrinsic!: Extrinsic | undefined | null - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - call!: Call | undefined | null - - @Column_("int4", {nullable: false}) - index!: number - - @Column_("text", {nullable: false}) - phase!: string - - @Index_() - @Column_("text", {nullable: false}) - pallet!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Column_("int4", {nullable: true}) - pos!: number | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @Column_("text", {array: true, nullable: true}) - argsStr!: (string | undefined | null)[] | undefined | null -} diff --git a/indexers/general-squid/src/model/generated/eventModuleName.model.ts b/indexers/general-squid/src/model/generated/eventModuleName.model.ts deleted file mode 100644 index 3b65717e0..000000000 --- a/indexers/general-squid/src/model/generated/eventModuleName.model.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class EventModuleName { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string -} diff --git a/indexers/general-squid/src/model/generated/extrinsic.model.ts b/indexers/general-squid/src/model/generated/extrinsic.model.ts deleted file mode 100644 index 2f1101bd2..000000000 --- a/indexers/general-squid/src/model/generated/extrinsic.model.ts +++ /dev/null @@ -1,70 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Block} from "./block.model" -import {Call} from "./call.model" -import {ExtrinsicSignature} from "./_extrinsicSignature" -import {Event} from "./event.model" - -@Entity_() -export class Extrinsic { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block - - @Index_() - @ManyToOne_(() => Call, {nullable: true}) - call!: Call | undefined | null - - @Column_("int4", {nullable: false}) - index!: number - - @Column_("int4", {nullable: false}) - version!: number - - @Column_("jsonb", {transformer: {to: obj => obj == null ? undefined : obj.toJSON(), from: obj => obj == null ? undefined : new ExtrinsicSignature(undefined, obj)}, nullable: true}) - signature!: ExtrinsicSignature | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - tip!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - fee!: bigint | undefined | null - - @Index_() - @Column_("bool", {nullable: false}) - success!: boolean - - @Column_("jsonb", {nullable: true}) - error!: unknown | undefined | null - - @Index_() - @Column_("text", {nullable: false}) - hash!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: false}) - name!: string - - @Column_("text", {nullable: true}) - signer!: string | undefined | null - - @Column_("jsonb", {nullable: true}) - args!: unknown | undefined | null - - @OneToMany_(() => Event, e => e.extrinsic) - events!: Event[] - - @OneToMany_(() => Call, e => e.extrinsic) - calls!: Call[] -} diff --git a/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts b/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts deleted file mode 100644 index 36b4eaef2..000000000 --- a/indexers/general-squid/src/model/generated/extrinsicModuleName.model.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class ExtrinsicModuleName { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - name!: string -} diff --git a/indexers/general-squid/src/model/generated/index.ts b/indexers/general-squid/src/model/generated/index.ts deleted file mode 100644 index 5fb2077f8..000000000 --- a/indexers/general-squid/src/model/generated/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from "./block.model" -export * from "./extrinsicModuleName.model" -export * from "./extrinsic.model" -export * from "./_extrinsicSignature" -export * from "./eventModuleName.model" -export * from "./event.model" -export * from "./call.model" -export * from "./log.model" -export * from "./itemsCounter.model" -export * from "./_itemType" -export * from "./_counterLevel" diff --git a/indexers/general-squid/src/model/generated/itemsCounter.model.ts b/indexers/general-squid/src/model/generated/itemsCounter.model.ts deleted file mode 100644 index 7196bbdd3..000000000 --- a/indexers/general-squid/src/model/generated/itemsCounter.model.ts +++ /dev/null @@ -1,25 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" -import {ItemType} from "./_itemType" -import {CounterLevel} from "./_counterLevel" - -@Entity_() -export class ItemsCounter { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("varchar", {length: 10, nullable: false}) - type!: ItemType - - @Index_() - @Column_("varchar", {length: 6, nullable: false}) - level!: CounterLevel - - @Index_() - @Column_("int4", {nullable: false}) - total!: number -} diff --git a/indexers/general-squid/src/model/generated/log.model.ts b/indexers/general-squid/src/model/generated/log.model.ts deleted file mode 100644 index 3cbbc3705..000000000 --- a/indexers/general-squid/src/model/generated/log.model.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import {Block} from "./block.model" - -@Entity_() -export class Log { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - kind!: string - - @Column_("jsonb", {nullable: true}) - value!: unknown | undefined | null - - @Index_() - @ManyToOne_(() => Block, {nullable: true}) - block!: Block -} diff --git a/indexers/general-squid/src/model/generated/marshal.ts b/indexers/general-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/general-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/general-squid/src/model/index.ts b/indexers/general-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/general-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/general-squid/src/processor.ts b/indexers/general-squid/src/processor.ts deleted file mode 100644 index 885eb22ff..000000000 --- a/indexers/general-squid/src/processor.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - Block as Block_, - BlockHeader as BlockHeader_, - Call as Call_, - DataHandlerContext, - Event as Event_, - Extrinsic as Extrinsic_, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .setFields({ - block: { - timestamp: true, - digest: true, - extrinsicsRoot: true, - stateRoot: true, - validator: true, - author: true, - }, - call: { - name: true, - args: true, - origin: true, - success: true, - error: true, - }, - event: { - name: true, - args: true, - phase: true, - }, - extrinsic: { - hash: true, - success: true, - error: true, - fee: true, - signature: true, - tip: true, - version: true, - }, - }) - .addCall({ - extrinsic: true, - stack: true, - }) - .addEvent({ - call: true, - extrinsic: true, - }) - .includeAllBlocks(); - -export type Fields = SubstrateBatchProcessorFields; -export type Call = Call_; -export type Event = Event_; -export type Extrinsic = Extrinsic_; -export type Block = Block_; -export type BlockHeader = BlockHeader_; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/general-squid/src/types/balances/calls.ts b/indexers/general-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/general-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/balances/constants.ts b/indexers/general-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/general-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/balances/events.ts b/indexers/general-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/general-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/balances/storage.ts b/indexers/general-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/general-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/general-squid/src/types/calls.ts b/indexers/general-squid/src/types/calls.ts deleted file mode 100644 index f86459d11..000000000 --- a/indexers/general-squid/src/types/calls.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/calls' -export * as timestamp from './timestamp/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as utility from './utility/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/general-squid/src/types/constants.ts b/indexers/general-squid/src/types/constants.ts deleted file mode 100644 index 1a3e8c237..000000000 --- a/indexers/general-squid/src/types/constants.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as system from './system/constants' -export * as timestamp from './timestamp/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as utility from './utility/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/general-squid/src/types/domains/calls.ts b/indexers/general-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/general-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/general-squid/src/types/domains/constants.ts b/indexers/general-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/general-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/domains/events.ts b/indexers/general-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/general-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/domains/storage.ts b/indexers/general-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/general-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/general-squid/src/types/events.ts b/indexers/general-squid/src/types/events.ts deleted file mode 100644 index 8e7e8d88a..000000000 --- a/indexers/general-squid/src/types/events.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as utility from './utility/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/general-squid/src/types/index.ts b/indexers/general-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/general-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/general-squid/src/types/messenger/calls.ts b/indexers/general-squid/src/types/messenger/calls.ts deleted file mode 100644 index 03c0f7588..000000000 --- a/indexers/general-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), - /** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ - v5: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v5.ChainId, - params: v5.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives an Inbox message that needs to be validated and processed. - */ - v5: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives a response from the dst_chain for a message in Outbox. - */ - v5: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/general-squid/src/types/messenger/constants.ts b/indexers/general-squid/src/types/messenger/constants.ts deleted file mode 100644 index fecb47fda..000000000 --- a/indexers/general-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v5 from '../v5' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} - -export const channelInitReservePortion = { - /** - * Portion of Channel reserve taken by the protocol - * if the channel is in init state and is requested to be closed. - */ - v5: new ConstantType( - 'Messenger.ChannelInitReservePortion', - v5.Perbill - ), -} diff --git a/indexers/general-squid/src/types/messenger/events.ts b/indexers/general-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/general-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/messenger/storage.ts b/indexers/general-squid/src/types/messenger/storage.ts deleted file mode 100644 index cb857a76e..000000000 --- a/indexers/general-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,332 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} - -export const messageWeightTags = { - /** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ - v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, -} - -/** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ -export interface MessageWeightTagsV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.MessageWeightTags | undefined)> -} diff --git a/indexers/general-squid/src/types/rewards/calls.ts b/indexers/general-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/general-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/general-squid/src/types/rewards/constants.ts b/indexers/general-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/general-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/general-squid/src/types/rewards/events.ts b/indexers/general-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/general-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/rewards/storage.ts b/indexers/general-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/general-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/general-squid/src/types/storage.ts b/indexers/general-squid/src/types/storage.ts deleted file mode 100644 index cf9914baa..000000000 --- a/indexers/general-squid/src/types/storage.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as system from './system/storage' -export * as timestamp from './timestamp/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/general-squid/src/types/subspace/calls.ts b/indexers/general-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/general-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/general-squid/src/types/subspace/constants.ts b/indexers/general-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/general-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/subspace/events.ts b/indexers/general-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/general-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/general-squid/src/types/subspace/storage.ts b/indexers/general-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/general-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/general-squid/src/types/support.ts b/indexers/general-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/general-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/general-squid/src/types/system/calls.ts b/indexers/general-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/general-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/general-squid/src/types/system/constants.ts b/indexers/general-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/general-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/system/events.ts b/indexers/general-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/general-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/general-squid/src/types/system/storage.ts b/indexers/general-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/general-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/general-squid/src/types/timestamp/calls.ts b/indexers/general-squid/src/types/timestamp/calls.ts deleted file mode 100644 index 60a975536..000000000 --- a/indexers/general-squid/src/types/timestamp/calls.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/timestamp/constants.ts b/indexers/general-squid/src/types/timestamp/constants.ts deleted file mode 100644 index 09884d72c..000000000 --- a/indexers/general-squid/src/types/timestamp/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), -} diff --git a/indexers/general-squid/src/types/timestamp/storage.ts b/indexers/general-squid/src/types/timestamp/storage.ts deleted file mode 100644 index 1bf820c09..000000000 --- a/indexers/general-squid/src/types/timestamp/storage.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, -} - -/** - * The current time for the current block. - */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, -} - -/** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/general-squid/src/types/transaction-fees/constants.ts b/indexers/general-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/general-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/general-squid/src/types/transaction-fees/events.ts b/indexers/general-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/general-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/general-squid/src/types/transaction-fees/storage.ts b/indexers/general-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/general-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/general-squid/src/types/utility/calls.ts b/indexers/general-squid/src/types/utility/calls.ts deleted file mode 100644 index d40533708..000000000 --- a/indexers/general-squid/src/types/utility/calls.ts +++ /dev/null @@ -1,320 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ - v5: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), - /** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v5.Call, - }) - ), -} - -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), - /** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ - v5: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v5.OriginCaller, - call: v5.Call, - }) - ), -} - -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ - v5: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), -} diff --git a/indexers/general-squid/src/types/utility/constants.ts b/indexers/general-squid/src/types/utility/constants.ts deleted file mode 100644 index e82480598..000000000 --- a/indexers/general-squid/src/types/utility/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), -} diff --git a/indexers/general-squid/src/types/utility/events.ts b/indexers/general-squid/src/types/utility/events.ts deleted file mode 100644 index 1652db0da..000000000 --- a/indexers/general-squid/src/types/utility/events.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), -} - -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), -} - -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), -} - -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), -} - -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), -} - -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/general-squid/src/types/v0.ts b/indexers/general-squid/src/types/v0.ts deleted file mode 100644 index deff27135..000000000 --- a/indexers/general-squid/src/types/v0.ts +++ /dev/null @@ -1,4597 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/general-squid/src/types/v1.ts b/indexers/general-squid/src/types/v1.ts deleted file mode 100644 index 44f1ffbdf..000000000 --- a/indexers/general-squid/src/types/v1.ts +++ /dev/null @@ -1,4097 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export interface FeeModel { - relayFee: bigint -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AccountId32 = sts.bytes() diff --git a/indexers/general-squid/src/types/v3.ts b/indexers/general-squid/src/types/v3.ts deleted file mode 100644 index 0eda7a4a7..000000000 --- a/indexers/general-squid/src/types/v3.ts +++ /dev/null @@ -1,2472 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export const Public = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Public = Bytes - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * See [`Pallet::update_issuance_params`]. - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::update_domain_allowlist`]. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} diff --git a/indexers/general-squid/src/types/v5.ts b/indexers/general-squid/src/types/v5.ts deleted file mode 100644 index f3bc79322..000000000 --- a/indexers/general-squid/src/types/v5.ts +++ /dev/null @@ -1,4370 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Perbill = sts.number() - -export interface MessageWeightTags { - outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] - inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export const MessageWeightTags: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Type_251, - weightTag: MessageWeightTag, - } -}) - -export const Type_251: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export type EncodableOpaqueLeaf = Bytes - -export type Type_251 = Type_251_Consensus | Type_251_Domain - -export interface Type_251_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Type_251_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Type_251 - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number -} - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -export interface VestingCall_claim { - __kind: 'claim' -} - -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * Initiates transfer of funds from account on src_chain to account on dst_chain. - * Funds are burned on src_chain first and are minted on dst_chain using Messenger. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * Kill some items from storage. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * Make some on-chain remark and emit event. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * Set the new runtime code. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * Set the number of pages in the WebAssembly environment's heap. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * Set some items of storage. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export const Slot = sts.bigint() - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type Slot = bigint - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * Enable storage access for all users. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * Enable rewards for blocks and votes at specified block height. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * Enable solution range adjustment after every era. - * Note: No effect on the solution range for the current era - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. - * If valid, the offence will be reported. - * - * This extrinsic must be called unsigned and it is expected that only block authors will - * call it (validated in `ValidateUnsigned`), as such if the block author is defined it - * will be defined as the equivocation reporter. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * Submit new segment header to the blockchain. This is an inherent extrinsic and part of - * the Subspace consensus logic. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * Farmer vote, currently only used for extra rewards to farmers. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * Enable or disable balance transfers for all users. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * Change enable domains state. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * Enable or disable dynamic cost of storage. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * Enable or disable calls from non-root users. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export interface RewardPoint { - block: number - subsidy: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * Update dynamic issuance parameters - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * An open channel is closed with a foreign chain. - * Channel is set to Closed and do not accept or receive any messages. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * A call to initiate chain allowlist update on domains - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * Receives an Inbox message that needs to be validated and processed. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * Receives a response from the dst_chain for a message in Outbox. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * A call to update consensus chain allow list. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * An inherent call to update allowlist for domain. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - set_permissioned_action_allowed_by: sts.enumStruct({ - permissionedActionAllowedBy: PermissionedActionAllowedBy, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_nominator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * Force staking epoch transition for a given domain - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig - signingKeyProofOfOwnership: Bytes -} - -/** - * Update permissioned action allowed by storage by Sudo. - */ -export interface DomainsCall_set_permissioned_action_allowed_by { - __kind: 'set_permissioned_action_allowed_by' - permissionedActionAllowedBy: PermissionedActionAllowedBy -} - -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * Unlocks the first withdrawal given the unlocking period is complete. - * Even if rest of the withdrawals are out of unlocking period, nominator - * should call this extrinsic to unlock each withdrawal - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ -export interface DomainsCall_unlock_nominator { - __kind: 'unlock_nominator' - operatorId: bigint -} - -/** - * Extrinsic to update domain's operator allow list. - * Note: - * - If the previous allowed list is set to specific operators and new allow list is set - * to `Anyone`, then domain will become permissioned to open for all operators. - * - If the previous allowed list is set to `Anyone` or specific operators and the new - * allow list is set to specific operators, then all the registered not allowed operators - * will continue to operate until they de-register themselves. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_adjust_total_issuance: sts.enumStruct({ - direction: AdjustmentDirection, - delta: sts.bigint(), - }), - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ -export interface BalancesCall_force_adjust_total_issuance { - __kind: 'force_adjust_total_issuance' - direction: AdjustmentDirection - delta: bigint -} - -/** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/general-squid/tsconfig.json b/indexers/general-squid/tsconfig.json deleted file mode 100644 index 3b8340342..000000000 --- a/indexers/general-squid/tsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es2020", - "outDir": "lib", - "rootDir": "src", - "strict": true, - "declaration": false, - "sourceMap": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true, - "resolveJsonModule": true - }, - "include": ["src"], - "exclude": ["node_modules"] -} diff --git a/indexers/general-squid/typegen.json b/indexers/general-squid/typegen.json deleted file mode 100644 index 17eca73b8..000000000 --- a/indexers/general-squid/typegen.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "outDir": "src/types", - "specVersions": "gemini3h.jsonl", - "pallets": { - "System": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Utility": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Timestamp": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "TransactionFees": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Balances": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Domains": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Rewards": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Messenger": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Subspace": { - "events": true, - "calls": true, - "storage": true, - "constants": true - } - } -} diff --git a/indexers/rewards-squid/.dockerignore b/indexers/rewards-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/rewards-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/rewards-squid/.env.local b/indexers/rewards-squid/.env.local deleted file mode 100644 index 4e8d11d22..000000000 --- a/indexers/rewards-squid/.env.local +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=rewards-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 \ No newline at end of file diff --git a/indexers/rewards-squid/.env.sample b/indexers/rewards-squid/.env.sample deleted file mode 100644 index 044ef9c91..000000000 --- a/indexers/rewards-squid/.env.sample +++ /dev/null @@ -1,4 +0,0 @@ -DB_NAME=rewards-squid -RPC_ENDPOINT=wss://rpc-0.gemini-3h.subspace.network/ws -GQL_PORT=4450 -DB_PORT=5433 diff --git a/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md b/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index bf3db9c69..000000000 --- a/indexers/rewards-squid/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Environment (please complete the following information):** - - specify the version of the core packages (@subsquid/cli, @subsquid/substrate-processor, ...) - - node.js version - - npm version - - OS version - - Reproducible example or a repo link - -**Applicable to decoding issues:** - - chain name - - typesBundle (if it's not built-in) -optional: - - block - - extrinsic - - call - - event - - spec version - - endpoint - -**Additional context** -Add any other context about the problem here. diff --git a/indexers/rewards-squid/.gitignore b/indexers/rewards-squid/.gitignore deleted file mode 100644 index e1ee2904b..000000000 --- a/indexers/rewards-squid/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -/node_modules -/lib -/builds - -/**Versions.json -/**Versions.jsonl - - -# IDE files -/.idea -/.env -/data \ No newline at end of file diff --git a/indexers/rewards-squid/.npmrc b/indexers/rewards-squid/.npmrc deleted file mode 100644 index 4fd021952..000000000 --- a/indexers/rewards-squid/.npmrc +++ /dev/null @@ -1 +0,0 @@ -engine-strict=true \ No newline at end of file diff --git a/indexers/rewards-squid/Dockerfile b/indexers/rewards-squid/Dockerfile deleted file mode 100644 index 2616ea0a4..000000000 --- a/indexers/rewards-squid/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -FROM node:20-alpine AS node -FROM node AS node-with-gyp -RUN apk add g++ make python3 -FROM node-with-gyp AS builder -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -ADD assets assets -ADD db db -ADD schema.graphql . -RUN npm ci -ADD tsconfig.json . -ADD src src -RUN npm run build -FROM node-with-gyp AS deps -WORKDIR /squid -ADD package.json . -ADD package-lock.json . -RUN npm install -g npm@10.5.2 && npm ci --production - -FROM node AS squid -WORKDIR /squid -COPY --from=deps /squid/package.json . -COPY --from=deps /squid/package-lock.json . -COPY --from=deps /squid/node_modules node_modules -COPY --from=builder /squid/lib lib -COPY --from=builder /squid/assets assets -COPY --from=builder /squid/db db -COPY --from=builder /squid/schema.graphql schema.graphql -ADD commands.json . -RUN echo -e "loglevel=silent\\nupdate-notifier=false" > /squid/.npmrc -RUN npm i -g @subsquid/commands && mv $(which squid-commands) /usr/local/bin/sqd -EXPOSE 3000 -EXPOSE 4350 -ENV PROCESSOR_PROMETHEUS_PORT 3000 - -FROM squid AS processor -CMD ["sqd", "process:prod"] diff --git a/indexers/rewards-squid/LICENSE b/indexers/rewards-squid/LICENSE deleted file mode 100644 index 7ef99c6a7..000000000 --- a/indexers/rewards-squid/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023 Subsquid Labs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/indexers/rewards-squid/README.md b/indexers/rewards-squid/README.md deleted file mode 100644 index f3f94f844..000000000 --- a/indexers/rewards-squid/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Rewards-Squid Indexer - -Rewards-Squid specializes in indexing and processing reward distribution events on the Astral blockchain. It is crucial for applications that need detailed insights into reward allocations and distributions. - -## Overview - -- Efficiently captures and indexes reward transactions and distribution events. -- Makes reward data readily available via a GraphQL API for easy consumption. - -## Getting Started - -To set up and use the Rewards-Squid indexer: - -1. Install Node.js (version 16.x or above) and Docker on your machine. -2. Clone the repository and navigate to the `rewards-squid` directory. -3. Follow instructions to install dependencies and start the indexing services. - -## Development Guidelines - -- Follow the project’s code standards and commit guidelines. -- Ensure that all changes are well-tested and documented. -- Engage with the community through issues and pull requests to discuss major changes. - -## Resources - -- [Original Squid Template](https://github.com/subsquid-labs/squid-substrate-template) - Base template for Squid projects. -- [Subsquid Deployment Guide](https://docs.subsquid.io/deploy-squid/) - Learn how to deploy and manage your squid instances. - -## License - -Rewards-Squid is provided under the MIT License, aligning with the licensing of the entire Astral project. diff --git a/indexers/rewards-squid/assets/README.MD b/indexers/rewards-squid/assets/README.MD deleted file mode 100644 index 23a55abb7..000000000 --- a/indexers/rewards-squid/assets/README.MD +++ /dev/null @@ -1,3 +0,0 @@ -# Assets - -`assets` is the designated folder for any additional files to be used by the squid, for example a static data file. The folder is added by default to `Dockerfile` and is kept when the squid is deployed to the Aquairum. \ No newline at end of file diff --git a/indexers/rewards-squid/commands.json b/indexers/rewards-squid/commands.json deleted file mode 100644 index 2e95a4be0..000000000 --- a/indexers/rewards-squid/commands.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "$schema": "https://cdn.subsquid.io/schemas/commands.json", - "commands": { - "clean": { - "description": "delete all build artifacts", - "cmd": ["npx", "--yes", "rimraf", "lib"] - }, - "build": { - "description": "Build the squid project", - "deps": ["clean"], - "cmd": ["tsc"] - }, - "up": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "up", "-d"] - }, - "up-local": { - "description": "Start a PG database", - "cmd": ["docker", "compose", "-f", "docker-compose-local.yml", "up", "-d"] - }, - "down": { - "description": "Drop a PG database", - "cmd": ["docker", "compose", "down"] - }, - "migration:apply": { - "description": "Apply the DB migrations", - "cmd": ["squid-typeorm-migration", "apply"] - }, - "migration:generate": { - "description": "Generate a DB migration matching the TypeORM entities", - "deps": ["build", "migration:clean"], - "cmd": ["squid-typeorm-migration", "generate"] - }, - "migration:clean": { - "description": "Clean the migrations folder", - "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] - }, - "migration": { - "deps": ["build"], - "cmd": ["squid-typeorm-migration", "generate"], - "hidden": true - }, - "codegen": { - "description": "Generate TypeORM entities from the schema file", - "cmd": ["squid-typeorm-codegen"] - }, - "typegen": { - "description": "Generate data access classes for an substrate metadata", - "cmd": ["squid-substrate-typegen", "./typegen.json"] - }, - "process": { - "description": "Load .env and start the squid processor", - "deps": ["build", "migration:apply"], - "cmd": ["node", "--require=dotenv/config", "lib/main.js"] - }, - "process:prod": { - "description": "Start the squid processor", - "deps": ["migration:apply"], - "cmd": ["node", "lib/main.js"], - "hidden": true - }, - "serve": { - "description": "Start the GraphQL API server", - "cmd": ["squid-graphql-server"] - }, - "serve:prod": { - "description": "Start the GraphQL API server with caching and limits", - "cmd": [ - "squid-graphql-server", - "--dumb-cache", - "in-memory", - "--dumb-cache-ttl", - "1000", - "--dumb-cache-size", - "100", - "--dumb-cache-max-age", - "1000" - ] - }, - "check-updates": { - "cmd": [ - "npx", - "--yes", - "npm-check-updates", - "--filter=/subsquid/", - "--upgrade" - ], - "hidden": true - }, - "bump": { - "description": "Bump @subsquid packages to the latest versions", - "deps": ["check-updates"], - "cmd": ["npm", "i", "-f"] - }, - "open": { - "description": "Open a local browser window", - "cmd": ["npx", "--yes", "opener"] - }, - "metadata:explore": { - "description": "Explore the metadata of a Substrate chain", - "cmd": [ - "npx", - "substrate-metadata-explorer", - "--rpc=https://rpc-0.gemini-3h.subspace.network/ws", - "--out=gemini3h.jsonl" - ] - } - } -} diff --git a/indexers/rewards-squid/db/migrations/1713160183202-Data.js b/indexers/rewards-squid/db/migrations/1713160183202-Data.js deleted file mode 100644 index 14233ecfb..000000000 --- a/indexers/rewards-squid/db/migrations/1713160183202-Data.js +++ /dev/null @@ -1,103 +0,0 @@ -module.exports = class Data1713160183202 { - name = 'Data1713160183202' - - async up(db) { - await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text, "amount" numeric, "account_id" character varying, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_ff1b646bb31ccbc8e1b2f868bd" ON "reward_event" ("account_id") `) - await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "amount" numeric, "nominator_account" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "operator_id" character varying, "nominator_id" character varying, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_230a90fc5a10c7ac5ac35397d2" ON "deposit" ("block_number") `) - await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "operator_reward_event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text, "amount" numeric NOT NULL, "operator_id" character varying, CONSTRAINT "PK_721a9f907ad1f01a5abed1f2e8e" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_b9cf23c6256a9fc7e01a271376" ON "operator_reward_event" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_2b8b8fd9152da4d7ba4b71080c" ON "operator_reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_d878c755d920f1be253bad97dd" ON "operator_reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_83b9c467963de152d3e83dcf58" ON "operator_reward_event" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "signing_key" text NOT NULL, "operator_owner" text, "ordering_id" integer NOT NULL, "current_domain_id" integer, "next_domain_id" integer, "minimum_nominator_stake" numeric, "nomination_tax" integer, "current_total_stake" numeric, "current_epoch_rewards" numeric, "total_shares" numeric, "nominator_amount" integer NOT NULL, "status" text, "updated_at" integer, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) - await db.query(`CREATE INDEX "IDX_5ae5d5e1878c2fbe2edbf18330" ON "operator" ("operator_owner") `) - await db.query(`CREATE INDEX "IDX_5dbe10dbb2aa428088e61574d9" ON "operator" ("ordering_id") `) - await db.query(`CREATE INDEX "IDX_b0357fd28c43547900d34af4a4" ON "operator" ("nominator_amount") `) - await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) - await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "shares" numeric, "status" text NOT NULL, "updated_at" integer, "operator_id" character varying, "account_id" character varying, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "domain_id" integer NOT NULL, "epoch" integer NOT NULL, "updated_at" integer, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) - await db.query(`CREATE TABLE "account_reward" ("id" character varying NOT NULL, "total_rewards" numeric, "block" numeric, "vote" numeric, "operator" numeric, "updated_at" integer NOT NULL, "account_id" character varying, CONSTRAINT "PK_adb38c63a4196415a50dfffea86" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7771dd1572b239c78e09e06b15" ON "account_reward" ("account_id") `) - await db.query(`CREATE INDEX "IDX_3f4a43ba0de3315191dac832b8" ON "account_reward" ("updated_at") `) - await db.query(`CREATE TABLE "operator_reward" ("id" character varying NOT NULL, "amount" numeric, "updated_at" integer NOT NULL, CONSTRAINT "PK_81925489709706b633c09e4a3cb" PRIMARY KEY ("id"))`) - await db.query(`CREATE TABLE "operator_unlocked_funds" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "nominator_account" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text, "amount" numeric, "operator_id" character varying, "nominator_id" character varying, CONSTRAINT "PK_88e0c471830b6c83ae6df8e561a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c5936076e548d50542cf776289" ON "operator_unlocked_funds" ("block_number") `) - await db.query(`CREATE INDEX "IDX_8d1c61c4fa2cbdf5da095a3ffd" ON "operator_unlocked_funds" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_2fff22e92b7b71ed2f39466e57" ON "operator_unlocked_funds" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_48c8e45b0ff8c212f11e4a68df" ON "operator_unlocked_funds" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_f01f1314fe38bc670d2a48fe1a" ON "operator_unlocked_funds" ("extrinsic_hash") `) - await db.query(`ALTER TABLE "reward_event" ADD CONSTRAINT "FK_ff1b646bb31ccbc8e1b2f868bd4" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "deposit" ADD CONSTRAINT "FK_c2f2cfaa2b294c75d38a57e380a" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "deposit" ADD CONSTRAINT "FK_b673efd4ec207b203e4d06abe9c" FOREIGN KEY ("nominator_id") REFERENCES "nominator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_reward_event" ADD CONSTRAINT "FK_b9cf23c6256a9fc7e01a2713761" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "nominator" ADD CONSTRAINT "FK_14374f281ccb6e72c55dab3c209" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "nominator" ADD CONSTRAINT "FK_917636e6d1130ea9506eaeafef9" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "account_reward" ADD CONSTRAINT "FK_7771dd1572b239c78e09e06b15c" FOREIGN KEY ("account_id") REFERENCES "account"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_unlocked_funds" ADD CONSTRAINT "FK_8d1c61c4fa2cbdf5da095a3ffd0" FOREIGN KEY ("operator_id") REFERENCES "operator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - await db.query(`ALTER TABLE "operator_unlocked_funds" ADD CONSTRAINT "FK_2fff22e92b7b71ed2f39466e57f" FOREIGN KEY ("nominator_id") REFERENCES "nominator"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`) - } - - async down(db) { - await db.query(`DROP TABLE "reward_event"`) - await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) - await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) - await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) - await db.query(`DROP INDEX "public"."IDX_ff1b646bb31ccbc8e1b2f868bd"`) - await db.query(`DROP TABLE "deposit"`) - await db.query(`DROP INDEX "public"."IDX_230a90fc5a10c7ac5ac35397d2"`) - await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) - await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) - await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) - await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) - await db.query(`DROP TABLE "operator_reward_event"`) - await db.query(`DROP INDEX "public"."IDX_b9cf23c6256a9fc7e01a271376"`) - await db.query(`DROP INDEX "public"."IDX_2b8b8fd9152da4d7ba4b71080c"`) - await db.query(`DROP INDEX "public"."IDX_d878c755d920f1be253bad97dd"`) - await db.query(`DROP INDEX "public"."IDX_83b9c467963de152d3e83dcf58"`) - await db.query(`DROP TABLE "operator"`) - await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) - await db.query(`DROP INDEX "public"."IDX_5ae5d5e1878c2fbe2edbf18330"`) - await db.query(`DROP INDEX "public"."IDX_5dbe10dbb2aa428088e61574d9"`) - await db.query(`DROP INDEX "public"."IDX_b0357fd28c43547900d34af4a4"`) - await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) - await db.query(`DROP TABLE "nominator"`) - await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) - await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP TABLE "domain_epoch"`) - await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) - await db.query(`DROP TABLE "account_reward"`) - await db.query(`DROP INDEX "public"."IDX_7771dd1572b239c78e09e06b15"`) - await db.query(`DROP INDEX "public"."IDX_3f4a43ba0de3315191dac832b8"`) - await db.query(`DROP TABLE "operator_reward"`) - await db.query(`DROP TABLE "operator_unlocked_funds"`) - await db.query(`DROP INDEX "public"."IDX_c5936076e548d50542cf776289"`) - await db.query(`DROP INDEX "public"."IDX_8d1c61c4fa2cbdf5da095a3ffd"`) - await db.query(`DROP INDEX "public"."IDX_2fff22e92b7b71ed2f39466e57"`) - await db.query(`DROP INDEX "public"."IDX_48c8e45b0ff8c212f11e4a68df"`) - await db.query(`DROP INDEX "public"."IDX_f01f1314fe38bc670d2a48fe1a"`) - await db.query(`ALTER TABLE "reward_event" DROP CONSTRAINT "FK_ff1b646bb31ccbc8e1b2f868bd4"`) - await db.query(`ALTER TABLE "deposit" DROP CONSTRAINT "FK_c2f2cfaa2b294c75d38a57e380a"`) - await db.query(`ALTER TABLE "deposit" DROP CONSTRAINT "FK_b673efd4ec207b203e4d06abe9c"`) - await db.query(`ALTER TABLE "operator_reward_event" DROP CONSTRAINT "FK_b9cf23c6256a9fc7e01a2713761"`) - await db.query(`ALTER TABLE "nominator" DROP CONSTRAINT "FK_14374f281ccb6e72c55dab3c209"`) - await db.query(`ALTER TABLE "nominator" DROP CONSTRAINT "FK_917636e6d1130ea9506eaeafef9"`) - await db.query(`ALTER TABLE "account_reward" DROP CONSTRAINT "FK_7771dd1572b239c78e09e06b15c"`) - await db.query(`ALTER TABLE "operator_unlocked_funds" DROP CONSTRAINT "FK_8d1c61c4fa2cbdf5da095a3ffd0"`) - await db.query(`ALTER TABLE "operator_unlocked_funds" DROP CONSTRAINT "FK_2fff22e92b7b71ed2f39466e57f"`) - } -} diff --git a/indexers/rewards-squid/docker-compose-local.yml b/indexers/rewards-squid/docker-compose-local.yml deleted file mode 100644 index c6f69f72b..000000000 --- a/indexers/rewards-squid/docker-compose-local.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" diff --git a/indexers/rewards-squid/docker-compose.yml b/indexers/rewards-squid/docker-compose.yml deleted file mode 100644 index c7958ea75..000000000 --- a/indexers/rewards-squid/docker-compose.yml +++ /dev/null @@ -1,39 +0,0 @@ -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - # command: ["postgres", "-c", "log_statement=all"] - volumes: - - ./data/db:/var/lib/postgresql/data - api: - image: ghcr.io/subspace/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - # GraphQL endpoint at port 4350 - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - db - processor: - image: ghcr.io/subspace/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5432 - - DB_HOST=db - - DB_PASS=postgres - ports: - # prometheus metrics exposed at port 3000 - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - db diff --git a/indexers/rewards-squid/gemini3g.jsonl b/indexers/rewards-squid/gemini3g.jsonl deleted file mode 100644 index e9e2a7a6f..000000000 --- a/indexers/rewards-squid/gemini3g.jsonl +++ /dev/null @@ -1,6 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x418040fc282f5e5ddd432c46d05297636f6f75ce68d66499ff4cbda69ccd180b","metadata":"0x6d6574610ee504000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650501011450686173650001146576656e7450010445000118746f70696373090101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d401706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e0018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f4018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400fc016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d8015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d808306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64dc011c42616c616e63650000dc0000061800e00c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000118726573756c74f0014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e40c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e8083c7072696d69746976655f7479706573105532353600000400ec01205b7536343b20345d0000ec000003040000002c00f0084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f40c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef800000408e8e800fc0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572010101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574010104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000050108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000090100000230000d01000002110100110100000408101000150108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651d01016473705f72756e74696d653a3a52756e74696d65537472696e670000190100000610001d0100000502002101000005000025010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73290101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973310101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29010000022d01002d01000004083434003101000002340035010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373390101845065724469737061746368436c6173733c57656967687473506572436c6173733e000039010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013d01000c01186e6f726d616c3d0101045400012c6f7065726174696f6e616c3d010104540001246d616e6461746f72793d0101045400003d010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963410101384f7074696f6e3c5765696768743e0001246d61785f746f74616c410101384f7074696f6e3c5765696768743e0001207265736572766564410101384f7074696f6e3c5765696768743e0000410104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000045010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178490101545065724469737061746368436c6173733c7533323e000049010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004d01082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005101082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651d01013452756e74696d65537472696e67000124696d706c5f6e616d651d01013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735501011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005501040c436f77040454015901000400590100000059010000025d01005d01000004086101100061010000030800000008006501000005040069010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c65746d010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7101084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000750104284e6f6e5a65726f55333200000400100000007901085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747d01012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747d01012c4f7074696f6e3c7536343e00007d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000081010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008501083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f7471010110536c6f7400012c706172656e745f736c6f7471010110536c6f7400008901000004149465018d0191017101008d010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006501010c753136000091010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009501000004189465018d019101710100009901042042547265654d617008044b0189010456019d01000400ad010000009d010000040800a10100a1010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000a5010c1c73705f636f72651c73723235353139245369676e617475726500000400a90101205b75383b2036345d0000a901000003400000000800ad01000002b10100b1010000040889019d0100b501042042547265654d617008044b0110045601b901000400c101000000b9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74bd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000bd0104184f7074696f6e0404540171010108104e6f6e6500000010536f6d65040071010000010000c101000002c50100c5010000040810b90100c901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000cd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d90101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465dd0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d5010849640194001001206f6666656e6465729401084964000110736c6f7471010110536c6f7400013066697273745f686561646572d50101184865616465720001347365636f6e645f686561646572d50101184865616465720000d501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572190101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d9010000027c00dd01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a101013c4661726d65725369676e61747572650000e101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f7471010110536c6f74000120736f6c7574696f6ee50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6505020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6505020124506f744f757470757400000000e501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786501012c536563746f72496e646578000130686973746f72795f73697a65e901012c486973746f727953697a6500013070696563655f6f66667365748d01012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f10101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f50101345265636f72645769746e6573730001146368756e6b910101185363616c61720001346368756e6b5f7769746e657373f90101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365fd010120506f7350726f6f660000e9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400ed0101284e6f6e5a65726f5536340000ed0104284e6f6e5a65726f553634000004002c000000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000fd01086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400010201405b75383b2053656c663a3a53495a455d00000102000003a000000008000502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000902000004082c2c000d0200000408e901e9010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964610101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720161011c42616c616e6365011800080108696461010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766521010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786501010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400250101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d7004006d0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400cd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e606175746f5f7374616b655f626c6f636b5f7265776172647304012c6f70657261746f725f69642c01284f70657261746f724964000a04a4536565205b6050616c6c65743a3a6175746f5f7374616b655f626c6f636b5f72657761726473605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102013c50726f6f664f66456c656374696f6e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e0000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c901012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a901012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650901013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d501012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004003101000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e7369630c014870726f6f665f6f665f696e636c7573696f6ecd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c75333200012465787472696e73696334011c5665633c75383e0001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d50100140124646f6d61696e5f6964c80120446f6d61696e49640001206f6666656e6465720001244163636f756e744964000110736c6f7471010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f663c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6621010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d651d010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7321010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727321010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d8015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d80039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e4011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e4011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030420425472656553657404045401300004000901000000fd030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e000001040000040cc810300005040000040cc810100009040000020d04000d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000015040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765190401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001904086073756273706163655f636f72655f7072696d6974697665731055323536000004001d040148707269766174655f753235363a3a5532353600001d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400ec01205b7536343b20345d000021040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704002d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400310401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040039040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e25040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200012848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009000029040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800002d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b000031040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002d04013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002d04013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002d04013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002d04013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002d04013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002d04013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002d04013c5472616e736974696f6e4572726f720006000035040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000039040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013058496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e6564526563656970740004004442616447656e657369735265636569707400050054556e657870656374656452656365697074547970650006004c4d617848656164446f6d61696e4e756d6265720007007c4d756c7469706c6545527341667465724368616c6c656e6765506572696f64000800484d697373696e67446f6d61696e426c6f636b00090040496e76616c69645472616365526f6f74000a0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000b00003d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d8045300000400350301185665633c543e000041040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450400000408e4e8004904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e801244368616e6e656c496400011473746174654d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e801144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e801144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365510401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000510404184f7074696f6e04045401e80108104e6f6e6500000010536f6d650400e8000001000055040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011c7061796c6f61645904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365510401344f7074696f6e3c4e6f6e63653e000059040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004005d0401405061796c6f61643c42616c616e63653e000000005d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400610401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400690401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000061040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401650420526573706f6e736501bc01081c5265717565737404006504011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000065040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000069040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374016d0420526573706f6e736501710401081c5265717565737404006d04011c5265717565737400000020526573706f6e7365040071040120526573706f6e7365000100006d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000071040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000750400000408e4f80079040000040ce4e8e8007d040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78810401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573810401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000810400000285040085040000040ce4f859030089040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e04008d040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f72738d040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000095040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e99040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749d04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e617475726501a10414457874726101b10400040034000000a104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a5040148656432353531393a3a5369676e61747572650000001c537232353531390400a5010148737232353531393a3a5369676e61747572650001001445636473610400a904014065636473613a3a5369676e617475726500020000a5040c1c73705f636f72651c65643235353139245369676e617475726500000400a90101205b75383b2036345d0000a9040c1c73705f636f7265146563647361245369676e617475726500000400ad0401205b75383b2036355d0000ad04000003410000000800b10400000428b504b904bd04c104c504cd04d104d504d904dd0400b50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c904010c4572610000c904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000cd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040019010120543a3a4e6f6e63650000d10410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d504086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e104084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402300d010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000150104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010021010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010021010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000501040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01250101541830426c6f636b576569676874733501f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746845013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768744d014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5101310320737562737061636520737562737061636500000000000000000000000038df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be0100000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978650108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016901002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f016d010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f74010071012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100710120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007501040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100790148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100210104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008101040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000071010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010021010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000085010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000089010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000095010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009901040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000099010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010021010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002101040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01cd010178344c426c6f636b417574686f72696e6744656c61797101200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797101200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72650108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190209010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726501080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840000050f732e897cad8fb06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80901040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806061101a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650101080606e103f9030400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630fd030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b58446f6d61696e426c6f636b44657363656e64616e74730101040630f9030400004448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e285374617465526f6f747300010406010430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606050409040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c445072656665727265644f70657261746f7200010406002c0400085901204120707265666572726564204f70657261746f7220666f72206120676976656e204661726d65722c20656e61626c696e67206175746f6d61746963207374616b696e67206f6620626c6f636b20726577617264732e810120466f7220746865206175746f2d7374616b696e6720746f20737563636565642c20746865204661726d6572206d75737420616c736f2062652061204e6f6d696e61746f72206f662074686520707265666572726564204f70657261746f722e48446f6d61696e547852616e6765537461746500010406c81504040000018d0201c44048436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e0121040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002101040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002101040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402003d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d404444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0141040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e4e880000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060645044904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000055040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040675041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406750418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067904550404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067904550404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d6573736167657300007d040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301e0000189043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060675049104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f4000195043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301fc00019904649d04042848436865636b4e6f6e5a65726f53656e646572b504c040436865636b5370656356657273696f6eb9041038436865636b547856657273696f6ebd041030436865636b47656e65736973c1043038436865636b4d6f7274616c697479c5043028436865636b4e6f6e6365cd04c02c436865636b576569676874d104c0604368617267655472616e73616374696f6e5061796d656e74d504c048436865636b53746f72616765416363657373d904c03844697361626c6550616c6c657473dd04c0e104"} -{"specName":"subspace","specVersion":1,"blockNumber":73235,"blockHash":"0xaf11886f02929799aa318e4a1d2fc3d1882bcda52330b70e0fe14a99e9f3946e","metadata":"0x6d6574610ee104000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650101011450686173650001146576656e7450010445000118746f70696373050101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400dc018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f0018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400f8016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d62657210015c446f6d61696e426c6f636b4e756d626572466f723c543e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64d8011c42616c616e63650000d80000061800dc0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000118726573756c74ec014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e4083c7072696d69746976655f7479706573105532353600000400e801205b7536343b20345d0000e8000003040000002c00ec084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f00c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f401384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef400000408e4e400f80c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572fc01504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000010108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000501000002300009010000020d01000d0100000408101000110108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651901016473705f72756e74696d653a3a52756e74696d65537472696e67000015010000061000190100000502001d01000005000021010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73250101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579732d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25010000022901002901000004083434002d01000002340031010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373350101845065724469737061746368436c6173733c57656967687473506572436c6173733e000035010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013901000c01186e6f726d616c390101045400012c6f7065726174696f6e616c39010104540001246d616e6461746f72793901010454000039010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369633d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c3d0101384f7074696f6e3c5765696768743e00012072657365727665643d0101384f7074696f6e3c5765696768743e00003d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000041010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178450101545065724469737061746368436c6173733c7533323e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400004d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651901013452756e74696d65537472696e67000124696d706c5f6e616d651901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005101040c436f77040454015501000400550100000055010000025901005901000004085d0110005d010000030800000008006101000005040065010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657469010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d01084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000710104284e6f6e5a65726f55333200000400100000007501085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747901012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747901012c4f7074696f6e3c7536343e0000790104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100007d010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008101083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f746d010110536c6f7400012c706172656e745f736c6f746d010110536c6f74000085010000041494610189018d016d010089010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006101010c75313600008d010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e657204011046734672000091010000041894610189018d016d0100009501042042547265654d617008044b0185010456019901000400a901000000990100000408009d01009d010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a1010148737232353531393a3a5369676e61747572650000a1010c1c73705f636f72651c73723235353139245369676e617475726500000400a50101205b75383b2036345d0000a501000003400000000800a901000002ad0100ad01000004088501990100b101042042547265654d617008044b0110045601b501000400bd01000000b5010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74b90101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000b90104184f7074696f6e040454016d010108104e6f6e6500000010536f6d6504006d010000010000bd01000002c10100c1010000040810b50100c501086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000c9010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66cd010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d50101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657901012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657901012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465d90101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874050201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd01084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d1010849640194001001206f6666656e6465729401084964000110736c6f746d010110536c6f7400013066697273745f686561646572d10101184865616465720001347365636f6e645f686561646572d10101184865616465720000d101102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572150101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d5010000027c00d901085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465dd010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e61747572659d01013c4661726d65725369676e61747572650000dd01085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f746d010110536c6f74000120736f6c7574696f6ee10101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6501020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6501020124506f744f757470757400000000e101086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786101012c536563746f72496e646578000130686973746f72795f73697a65e501012c486973746f727953697a6500013070696563655f6f66667365748901012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74ed0101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f10101345265636f72645769746e6573730001146368756e6b8d0101185363616c61720001346368756e6b5f7769746e657373f50101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365f9010120506f7350726f6f660000e5010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400e90101284e6f6e5a65726f5536340000e90104284e6f6e5a65726f553634000004002c000000ed010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000f901086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400fd0101405b75383b2053656c663a3a53495a455d0000fd01000003a000000008000102086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d0000050204184f7074696f6e04045401100108104e6f6e6500000010536f6d6504001000000100000902000004082c2c000d0200000408e501e5010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869645d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572015d011c42616c616e636501180008010869645d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565d80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c6976651d010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565d80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786101010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400210101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400690101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400c90101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6519010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e606175746f5f7374616b655f626c6f636b5f7265776172647304012c6f70657261746f725f69642c01284f70657261746f724964000a04a4536565205b6050616c6c65743a3a6175746f5f7374616b655f626c6f636b5f72657761726473605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d1011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102013c50726f6f664f66456c656374696f6e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e0000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c501012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a501012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a1010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d101012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004002d01000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e7369630c014870726f6f665f6f665f696e636c7573696f6ecd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c75333200012465787472696e73696334011c5665633c75383e0001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d10100140124646f6d61696e5f6964c80120446f6d61696e49640001206f6666656e6465720001244163636f756e744964000110736c6f746d010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f663c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f661d010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6519010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e731d010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e73666572731d010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d40039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e0011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e0011c436861696e49640001306473745f636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e0011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6519010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e4d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e4d01013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e0000fd030000040cc810300001040000040cc810100005040000020904000904082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800000d04083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000011040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765150401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001504086073756273706163655f636f72655f7072696d69746976657310553235360000040019040148707269766174655f753235363a3a55323536000019040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400e801205b7536343b20345d00001d040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400290401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f636804002d0401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003104014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040035040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200012848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009000025040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000029040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b00002d040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002904013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002904013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002904013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002904013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002904013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002904013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002904013c5472616e736974696f6e4572726f720006000031040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000035040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000039040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d4045300000400350301185665633c543e00003d040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410400000408e0e4004504084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e401244368616e6e656c49640001147374617465490401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200004d0404184f7074696f6e04045401e40108104e6f6e6500000010536f6d650400e4000001000051040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e0011c436861696e49640001306473745f636861696e5f6964e0011c436861696e49640001286368616e6e656c5f6964e401244368616e6e656c49640001146e6f6e6365e401144e6f6e636500011c7061796c6f61645504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e000055040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400590401405061796c6f61643c42616c616e63653e0000000059040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c04005d0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400650401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e000100005d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401610420526573706f6e736501bc01081c5265717565737404006104011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000061040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e7365016d0401081c5265717565737404006904011c5265717565737400000020526573706f6e736504006d040120526573706f6e73650001000069040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f616400006d040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000710400000408e0f40075040000040ce0e4e40079040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f787d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365737d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00007d0400000281040081040000040ce0f459030085040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040089040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727389040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200008d04084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000091040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e95040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749904102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e6174757265019d0414457874726101ad04000400340000009d04082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a1040148656432353531393a3a5369676e61747572650000001c537232353531390400a1010148737232353531393a3a5369676e61747572650001001445636473610400a504014065636473613a3a5369676e617475726500020000a1040c1c73705f636f72651c65643235353139245369676e617475726500000400a50101205b75383b2036345d0000a5040c1c73705f636f7265146563647361245369676e617475726500000400a90401205b75383b2036355d0000a904000003410000000800ad0400000428b104b504b904bd04c104c904cd04d104d504d90400b10410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b50410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b90410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c10410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c504010c4572610000c504102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c90410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040015010120543a3a4e6f6e63650000cd0410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d104086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400d8013042616c616e63654f663c543e0000d5040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000dd04084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023009010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000110104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e7401001d010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e7401001d010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01210101541830426c6f636b576569676874733101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746841013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687449014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e4d01310320737562737061636520737562737061636500000000010000000000000038df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be0100000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978610108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501001d01040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0169010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f7401006d012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401006d0120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007101040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100750148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501001d0104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500007d01040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f7400006d010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e744865616465727301001d010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000081010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000085010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000091010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009501040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000095010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b101040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c5010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c656401001d010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501001d01040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01c9010178344c426c6f636b417574686f72696e6744656c61796d01200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61796d01200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e501200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e501200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72610108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190205010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726101080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c7918406ae4a7139cd833347a0307000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400041a7d9c2f00200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400080014000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806060d01a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e103300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630f9030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c81d0104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406fd0330040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606010405040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c80d04040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c445072656665727265644f70657261746f7200010406002c0400085901204120707265666572726564204f70657261746f7220666f72206120676976656e204661726d65722c20656e61626c696e67206175746f6d61746963207374616b696e67206f6620626c6f636b20726577617264732e810120466f7220746865206175746f2d7374616b696e6720746f20737563636565642c20746865204661726d6572206d75737420616c736f2062652061204e6f6d696e61746f72206f662074686520707265666572726564204f70657261746f722e48446f6d61696e547852616e6765537461746500010406c81104040000018d0201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e74206964011d040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301001d01040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301001d01040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200390404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e013d040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e0e480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060641044504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000051040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040671041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406710418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067504510404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067504510404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000079040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301dc000185043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060671048d04040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f0000191043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301f800019504649904042848436865636b4e6f6e5a65726f53656e646572b104c040436865636b5370656356657273696f6eb5041038436865636b547856657273696f6eb9041030436865636b47656e65736973bd043038436865636b4d6f7274616c697479c1043028436865636b4e6f6e6365c904c02c436865636b576569676874cd04c0604368617267655472616e73616374696f6e5061796d656e74d104c048436865636b53746f72616765416363657373d504c03844697361626c6550616c6c657473d904c0dd04"} -{"specName":"subspace","specVersion":2,"blockNumber":157127,"blockHash":"0xf8bb930be3d99b303f0ae7b92e89a9bf8f28b53c74a591cac5d0799a9c651a80","metadata":"0x6d6574610ee104000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650501011450686173650001146576656e7450010445000118746f70696373090101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d401706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e0018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f4018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f0400fc016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e7404045400013c3042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000d0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000e00047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65d8015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d808306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64dc011c42616c616e63650000dc0000061800e00c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e4011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964e801244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000118726573756c74f0014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e4011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964e801244368616e6e656c496404284368616e6e656c20497301146e6f6e6365e801144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e40c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000e8083c7072696d69746976655f7479706573105532353600000400ec01205b7536343b20345d0000ec000003040000002c00f0084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000f40c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e4011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964f801384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722ef800000408e8e800fc0c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572010101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574010104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000050108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000090100000230000d01000002110100110100000408101000150108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1901014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651d01016473705f72756e74696d653a3a52756e74696d65537472696e670000190100000610001d0100000502002101000005000025010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73290101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973310101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29010000022d01002d01000004083434003101000002340035010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373390101845065724469737061746368436c6173733c57656967687473506572436c6173733e000039010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454013d01000c01186e6f726d616c3d0101045400012c6f7065726174696f6e616c3d010104540001246d616e6461746f72793d0101045400003d010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963410101384f7074696f6e3c5765696768743e0001246d61785f746f74616c410101384f7074696f6e3c5765696768743e0001207265736572766564410101384f7074696f6e3c5765696768743e0000410104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000045010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178490101545065724469737061746368436c6173733c7533323e000049010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400004d01082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005101082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651d01013452756e74696d65537472696e67000124696d706c5f6e616d651d01013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735501011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005501040c436f77040454015901000400590100000059010000025d01005d01000004086101100061010000030800000008006501000005040069010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c65746d010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7101084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000750104284e6f6e5a65726f55333200000400100000007901085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578747d01012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578747d01012c4f7074696f6e3c7536343e00007d0104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000081010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008501083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f7471010110536c6f7400012c706172656e745f736c6f7471010110536c6f7400008901000004149465018d0191017101008d010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006501010c753136000091010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009501000004189465018d019101710100009901042042547265654d617008044b0189010456019d01000400ad010000009d010000040800a10100a1010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000a5010c1c73705f636f72651c73723235353139245369676e617475726500000400a90101205b75383b2036345d0000a901000003400000000800ad01000002b10100b1010000040889019d0100b501042042547265654d617008044b0110045601b901000400c101000000b9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74bd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000bd0104184f7074696f6e0404540171010108104e6f6e6500000010536f6d65040071010000010000c101000002c50100c5010000040810b90100c901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000cd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273d90101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964657d01012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465dd0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d5010849640194001001206f6666656e6465729401084964000110736c6f7471010110536c6f7400013066697273745f686561646572d50101184865616465720001347365636f6e645f686561646572d50101184865616465720000d501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572190101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000d9010000027c00dd01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a101013c4661726d65725369676e61747572650000e101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f7471010110536c6f74000120736f6c7574696f6ee50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6505020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6505020124506f744f757470757400000000e501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786501012c536563746f72496e646578000130686973746f72795f73697a65e901012c486973746f727953697a6500013070696563655f6f66667365748d01012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f10101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f50101345265636f72645769746e6573730001146368756e6b910101185363616c61720001346368756e6b5f7769746e657373f90101304368756e6b5769746e65737300013870726f6f665f6f665f7370616365fd010120506f7350726f6f660000e9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400ed0101284e6f6e5a65726f5536340000ed0104284e6f6e5a65726f553634000004002c000000f1010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d0000fd01086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400010201405b75383b2053656c663a3a53495a455d00000102000003a000000008000502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000902000004082c2c000d0200000408e901e9010011020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e6465720000190200000408a034001d020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012102045300000400290201185665633c543e000021020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964610101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732502011c526561736f6e73000025020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000029020000022102002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e000031020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720161011c42616c616e6365011800080108696461010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000350200000231020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d020453000004004d0201185665633c543e00003d020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640141021c42616c616e63650118000801086964410201084964000118616d6f756e7418011c42616c616e636500004102084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040045020154446f6d61696e73486f6c644964656e746966696572000000004502082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400490201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004902082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f724964000200004d020000023d020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e6365000059020000025502005d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365610201504163636f756e7449644c6f6f6b75704f663c543e00011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374610201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374610201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766521010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f6d0201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400650201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690201205b75383b2032305d000400006502000006c00069020000031400000008006d02000002000071020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000079020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800007d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000081020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786501010c75313600011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e71030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020000028902008902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400250101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d7004006d0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400cd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e63657304005d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400810201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304008d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304002d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400310301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400390301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400610301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f04006d0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400008d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c04045400012c347375626d69745f62756e646c650401346f70617175655f62756e646c65910201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c50201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967110301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669671d030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772903015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9102082873705f646f6d61696e731842756e646c65142445787472696e736963019502184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801347365616c65645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c10201385665633c45787472696e7369633e00009502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e63650118000801186865616465729d0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265bd0201444f70657261746f725369676e617475726500009d02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d5011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074a902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373c901012852616e646f6d6e6573730001347672665f7369676e6174757265a50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66a901012056726650726f6f660000a902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573ad0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163650901013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000ad02000002b10200b102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400b9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000b902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000bd020c2873705f646f6d61696e730c617070245369676e617475726500000400a5010148737232353531393a3a5369676e61747572650000c102000002950200c5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d501012458496e76616c696453746174655472616e736974696f6e0400c90201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400d90201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400dd0201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e10201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e50201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400e90201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400050301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400090301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c657304000d0301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66cd02013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d5020138457865637574696f6e50686173650000cd020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d102014442547265655365743c5665633c75383e3e0000d1020420425472656553657404045401340004003101000000d5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66cd02013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d50100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f7471010110536c6f7400013066697273745f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572990201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66cd02013053746f7261676550726f6f660000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473ed0201585665633c56616c696442756e646c654469676573743e0000ed02000002f10200f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f5020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f502000002f90200f90200000408fd02010300fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66cd02013053746f7261676550726f6f6600000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065b9020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66cd02013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6621010110626f6f6c000011030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e74000015030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c6963000019030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800001d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d651d010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747909020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374210301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002503014c42547265655365743c4163636f756e7449643e0001000025030420425472656553657404045401000004006d0200000029030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e6365000100002d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7321010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727321010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65d8015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573350301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3503000002d80039030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e4011c436861696e4964000118706172616d733d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367450301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c410301444665654d6f64656c3c42616c616e63653e000041030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000045030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011470726f6f66490301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167590301404d657373616765576569676874546167000049030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f4d030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66510301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66cd02013053746f7261676550726f6f6600004d030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503000004084d03cd020059030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e745265717565737404005d030120456e64706f696e7400020040456e64706f696e74526573706f6e736504005d030120456e64706f696e74000300104e6f6e65000400005d030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000061030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e650301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6503084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e4011c436861696e49640001286163636f756e745f6964690301384d756c74694163636f756e744964000069030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400690201205b75383b2032305d0001000c526177040034011c5665633c75383e000200006d030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577610201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f610201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400750301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400790301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000075030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007903081c73705f636f726510566f6964000100007d030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d651d010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000085030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c749d03019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008903042042547265654d617008044b018d03045601910300040095030000008d030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000091030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000095030000029903009903000004088d039103009d03042042547265654d617008044b018d030456018903000400a103000000a103000002a50300a503000004088d03890300a9030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738503012852617747656e6573697300011c76657273696f6e5101013852756e74696d6556657273696f6e00011068617368300110486173680000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273bd03015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b103042042547265654d617008044b012c04560118000400b503000000b503000002b90300b903000004082c1800bd0304204254726565536574040454012c000400c103000000c1030000022c00c5030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579150301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573c90301384f70657261746f725374617475730000c9030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000cd03000004082c0000d1030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d503000004082c1000d903000002dd0300dd030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e10300000408c81000e503042042547265654d617008044b012c045601e903000400ed03000000e9030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273d90301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000ed03000002f10300f103000004082ce90300f5030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001001406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669671d03015c446f6d61696e436f6e6669673c4163636f756e7449643e0000f9030c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074a902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c103013c5665633c4f70657261746f7249643e0000fd030000040cc810300001040000040cc810100005040000020904000904082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800000d04083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b103017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000011040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765150401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001504086073756273706163655f636f72655f7072696d69746976657310553235360000040019040148707269766174655f753235363a3a55323536000019040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400ec01205b7536343b20345d00001d040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400290401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f636804002d0401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003104014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040035040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000025040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000029040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b00002d040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04002904013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04002904013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204002904013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304002904013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204002904013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704002904013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204002904013c5472616e736974696f6e4572726f720006000031040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e496400030058496e76616c6964536c6f7450726f626162696c6974790004003c52756e74696d654e6f74466f756e6400050040496e73756666696369656e7446756e6400060044446f6d61696e4e616d65546f6f4c6f6e670007003442616c616e6365467265657a65000800804661696c6564546f47656e657261746547656e657369735374617465526f6f7400090038446f6d61696e4e6f74466f756e64000a00384e6f74446f6d61696e4f776e6572000b000035040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000039040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d8045300000400350301185665633c543e00003d040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410400000408e4e8004504084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964e801244368616e6e656c49640001147374617465490401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365e801144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365e801144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565410301444665654d6f64656c3c42616c616e63653e00004904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200004d0404184f7074696f6e04045401e80108104e6f6e6500000010536f6d650400e8000001000051040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e4011c436861696e49640001306473745f636861696e5f6964e4011c436861696e49640001286368616e6e656c5f6964e801244368616e6e656c49640001146e6f6e6365e801144e6f6e636500011c7061796c6f61645504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63654d0401344f7074696f6e3c4e6f6e63653e000055040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400590401405061796c6f61643c42616c616e63653e0000000059040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c04005d0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400650401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e000100005d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401610420526573706f6e736501bc01081c5265717565737404006104011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000061040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04003d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e7365016d0401081c5265717565737404006904011c5265717565737400000020526573706f6e736504006d040120526573706f6e73650001000069040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e745d030120456e64706f696e740001306473745f656e64706f696e745d030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f616400006d040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000710400000408e4f80075040000040ce4e8e80079040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f787d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365737d0401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00007d0400000281040081040000040ce4f859030085040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040089040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727389040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200008d04084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572650301204c6f636174696f6e0001207265636569766572650301204c6f636174696f6e000091040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e95040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c65749904102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730161021043616c6c018902245369676e6174757265019d0414457874726101ad04000400340000009d04082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a1040148656432353531393a3a5369676e61747572650000001c537232353531390400a5010148737232353531393a3a5369676e61747572650001001445636473610400a504014065636473613a3a5369676e617475726500020000a1040c1c73705f636f72651c65643235353139245369676e617475726500000400a90101205b75383b2036345d0000a5040c1c73705f636f7265146563647361245369676e617475726500000400a90401205b75383b2036355d0000a904000003410000000800ad0400000428b104b504b904bd04c104c904cd04d104d504d90400b10410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b50410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b90410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c10410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c504010c4572610000c504102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c90410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040019010120543a3a4e6f6e63650000cd0410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d104086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000d5040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000d9040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000dd04084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402300d010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000150104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010021010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010021010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000501040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01250101541830426c6f636b576569676874733501f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746845013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768744d014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e510161032073756273706163652073756273706163650000000002000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978650108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016901002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002101040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f016d010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f74010071012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100710120000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007501040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100790148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100210104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008101040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000071010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010021010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000085010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000089010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000095010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009901040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f74657273000099010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000c9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010021010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002101040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01cd010178344c426c6f636b417574686f72696e6744656c61797101200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797101200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790902400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473e901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e0d024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65e901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72650108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901110202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301502040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505190209010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402001d02040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402002d02040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020039020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020051020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e015d0201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000750204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726501080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640902400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b54617809024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c7918407331529baa928d29101707000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000e53de8a8a70800000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400060039000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100790240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01007d020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001810201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e017d03081c446f6d61696e73011c446f6d61696e7384445375636365737366756c42756e646c657301010406c80901040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c80901040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e3c52756e74696d65526567697374727900010406108103040000605363686564756c656452756e74696d65557067726164657300010806061101a903040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8ad03040000244f70657261746f7273000104062cc503040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8bd0304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606cd03d1030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606cd031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606cd03290304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8bd03040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100bd0304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d503d903040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e103bd0304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f503040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e103300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040630f9030400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8210104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406fd0330040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e1033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606010405040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c80d04040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c81104040000018d0201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b65184000409452a30300000000000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e74206964011d040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002101040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002101040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b010010100000000000012d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200390404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01310301d404444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e013d040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406e4e880000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060641044504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000051040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040671041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406710418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067504510404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067504510404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000079040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01390301e0000185043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060671048d04040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01610301f4000191043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e016d0301fc00019504649904042848436865636b4e6f6e5a65726f53656e646572b104c040436865636b5370656356657273696f6eb5041038436865636b547856657273696f6eb9041030436865636b47656e65736973bd043038436865636b4d6f7274616c697479c1043028436865636b4e6f6e6365c904c02c436865636b576569676874cd04c0604368617267655472616e73616374696f6e5061796d656e74d104c048436865636b53746f72616765416363657373d504c03844697361626c6550616c6c657473d904c0dd04"} -{"specName":"subspace","specVersion":3,"blockNumber":330716,"blockHash":"0x100e357a44c4cc05c1bfa70f17b26dbd88ad37581f33d9691fb32651e0949b52","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273c103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b503042042547265654d617008044b012c04560118000400b903000000b903000002bd0300bd03000004082c1800c10304204254726565536574040454012c000400c503000000c5030000022c00c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000170444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000003000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840763c8a417bd966ac294007000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000b140d3f0730d00000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000200ab001000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e7388445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c0004000050446f6d61696e5374616b696e6753756d6d61727900010406c8b103040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8c10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8c103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100c10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503c10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} -{"specName":"subspace","specVersion":4,"blockNumber":359565,"blockHash":"0x46db8757beae85fc8b99c409b67bf2b324c81fae07c41033b8f9ac74149d1305","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b10304204254726565536574040454012c000400b503000000b5030000022c00b9030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273b103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000bd03042042547265654d617008044b012c04560118000400c103000000c103000002c50300c503000004082c1800c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273bd03017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000174444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b006c4475706c69636174654f70657261746f725369676e696e674b6579001c000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000004000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c79184007e49e1257a4dc2be34607000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840001fad44b5bc0e00000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a00bf001000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e738c445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104061903b103040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c8b903040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8b10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8b103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100b10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503b10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} -{"specName":"subspace","specVersion":5,"blockNumber":536563,"blockHash":"0x9302e9bc5f4d54e6fc142fd5c01492acb57f9590e80d297f35f178fa5d9e09df","metadata":"0x6d6574610ee904000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173650d01011450686173650001146576656e7450010445000118746f70696373110101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000205375627370616365040078017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400dc01706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e8018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400fc018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000501016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465727c01345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657994013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e7c086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788001305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748401445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b8c01444c6173744172636869766564426c6f636b00000000800c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008801745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d0000880000033000000008008c086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739001544172636869766564426c6f636b50726f6772657373000090086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000940c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040098013c737232353531393a3a5075626c69630000980c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e740404540001105c53746f7261676546656573457363726f774368616e67650801186265666f726518013042616c616e63654f663c543e04d05374617465206f662073746f72616765206665657320657363726f77206265666f726520626c6f636b20657865637574696f6e2e0114616674657218013042616c616e63654f663c543e04cc5374617465206f662073746f72616765206665657320657363726f7720616674657220626c6f636b20657865637574696f6e2e00046c53746f72616765206665657320657363726f77206368616e67652e4453746f726167654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f66207468652073746f7261676520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e01043453746f7261676520666565732e44436f6d707574654665657352657761726408010c77686f000130543a3a4163636f756e74496404745265636569766572206f662074686520636f6d7075746520666565732e0118616d6f756e7418013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e020434436f6d7075746520666565732e285469707352657761726408010c77686f000130543a3a4163636f756e74496404505265636569766572206f6620746865207469702e0118616d6f756e7418013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e030414546970732e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501640108084f6b0400c0000000000c4572720400640000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001443042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f7249640008003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000900445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000b0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000c0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000d004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e000e0078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e4964000f003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400d80110536c6f7400020000d8084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000dc0c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e0015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e008306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e4011c42616c616e63650000e40000061800e80c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964ec011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f001244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000118726573756c74f8014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964ec011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f001244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f001144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473ec0c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000f0083c7072696d69746976655f7479706573105532353600000400f401205b7536343b20345d0000f4000003040000002c00f8084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f7200010000fc0c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964ec011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964010101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e010100000408f0f00005010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f6572090101504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574090104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100000d0108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001101000002300015010000021901001901000004081010001d0108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2101014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652501016473705f72756e74696d653a3a52756e74696d65537472696e6700002101000006100025010000050200290100000500002d010c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73310101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973390101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3101000002350100350100000408343400390100000234003d010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410101845065724469737061746368436c6173733c57656967687473506572436c6173733e000041010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014501000c01186e6f726d616c450101045400012c6f7065726174696f6e616c45010104540001246d616e6461746f72794501010454000045010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963490101384f7074696f6e3c5765696768743e0001246d61785f746f74616c490101384f7074696f6e3c5765696768743e0001207265736572766564490101384f7074696f6e3c5765696768743e0000490104184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100004d010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178510101545065724469737061746368436c6173733c7533323e000051010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005501082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005901082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d652501013452756e74696d65537472696e67000124696d706c5f6e616d652501013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735d01011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005d01040c436f77040454016101000400610100000061010000026501006501000004086901100069010000030800000008006d01000005040071010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657475010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790104284e6f6e5a65726f55333200000400100000007d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748101012c4f7074696f6e3c7536343e0000810104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000085010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74d80110536c6f7400012c706172656e745f736c6f74d80110536c6f7400008d0100000414946d0191019501d80091010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006d01010c753136000095010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000990100000418946d0191019501d800009d01042042547265654d617008044b018d01045601a101000400b101000000a1010000040800a50100a5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000a9010c1c73705f636f72651c73723235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad01000003400000000800b101000002b50100b501000004088d01a10100b901042042547265654d617008044b0110045601bd01000400c501000000bd010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c10101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c10104184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d80000010000c501000002c90100c9010000040810bd0100cd01086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d1010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c04045400011c4c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d5010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273dd0101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658101012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e10101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e38656e61626c655f72657761726473040118686569676874d001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0004047c536565205b6050616c6c65743a3a656e61626c655f72657761726473605d2e54656e61626c655f73746f726167655f61636365737300050498536565205b6050616c6c65743a3a656e61626c655f73746f726167655f616363657373605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000604ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d9010849640194001001206f6666656e6465729401084964000110736c6f74d80110536c6f7400013066697273745f686561646572d90101184865616465720001347365636f6e645f686561646572d90101184865616465720000d901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572210101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000dd010000027c00e101085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e5010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a501013c4661726d65725369676e61747572650000e501085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74d80110536c6f74000120736f6c7574696f6ee90101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6509020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6509020124506f744f757470757400000000e901086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019434526577617264416464726573730100002801287075626c69635f6b65799401245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786d01012c536563746f72496e646578000130686973746f72795f73697a65ed01012c486973746f727953697a6500013070696563655f6f66667365749101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f50101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373f90101345265636f72645769746e6573730001146368756e6b950101185363616c61720001346368756e6b5f7769746e657373fd0101304368756e6b5769746e65737300013870726f6f665f6f665f737061636501020120506f7350726f6f660000ed010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f10101284e6f6e5a65726f5536340000f10104284e6f6e5a65726f553634000004002c000000f5010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008801705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008801645b75383b205265636f72645769746e6573733a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008801605b75383b204368756e6b5769746e6573733a3a53495a455d00000102086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400050201405b75383b2053656c663a3a53495a455d00000502000003a000000008000902086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d00000d02000004082c2c00110200000408ed01ed010015020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720194000401206f6666656e6465729401204f6666656e64657200001d0200000408a0340021020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540125020453000004002d0201185665633c543e000025020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964690101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e732902011c526561736f6e73000029020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200002d0200000225020031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e000035020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720169011c42616c616e6365011800080108696469010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000039020000023502003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400510201185665633c543e000041020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640145021c42616c616e63650118000801086964450201084964000118616d6f756e7418011c42616c616e636500004502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040049020154446f6d61696e73486f6c644964656e746966696572000000004902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e6704004d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e4964000100004d02082873705f646f6d61696e73545374616b696e67486f6c644964656e74696669657200010c3850656e64696e674465706f73697404002c01284f70657261746f724964000000185374616b656404002c01284f70657261746f7249640001003450656e64696e67556e6c6f636b04002c01284f70657261746f72496400020000510200000241020055020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159020453000004005d0201185665633c543e000059020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e636500005d0200000259020061020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365650201504163636f756e7449644c6f6f6b75704f663c543e00011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374650201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374650201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c69766529010110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f710201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004006d0201205b75383b2032305d000400006902000006c0006d020000031400000008007102000002000075020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e636500007d020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000085020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465786d01010c75313600011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e75030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c738902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020000028d02008d02084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d04002d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400750101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400610201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400850201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400310301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400350301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e67657204003d0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400650301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400710301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e0064000091020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000130347375626d69745f62756e646c650401346f70617175655f62756e646c65950201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66c90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967150301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696721030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964c80120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f72496400012077697468647261772d03015857697468647261773c42616c616e63654f663c543e3e0009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973742503017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000a04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000b04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9502082873705f646f6d61696e731842756e646c65142445787472696e736963019902184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e63650118000801347365616c65645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373c50201385665633c45787472696e7369633e00009902082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e00009d02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e6365011800080118686561646572a10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265c10201444f70657261746f725369676e61747572650000a102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201d9011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6ea502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074ad02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000a502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000140124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373cd01012852616e646f6d6e6573730001347672665f7369676e6174757265a90201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f7249640000a902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801186f75747075740401245672664f757470757400011470726f6f66ad01012056726650726f6f660000ad02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573b10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651101013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000134746f74616c5f7265776172647318011c42616c616e63650000b102000002b50200b502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65b902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000b902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400bd020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000bd02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000c1020c2873705f646f6d61696e730c617070245369676e617475726500000400a9010148737232353531393a3a5369676e61747572650000c502000002990200c9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d901012458496e76616c696453746174655472616e736974696f6e0400cd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400dd0201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400e10201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400e50201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0003004c496e76616c6964546f74616c526577617264730400e90201d4496e76616c6964546f74616c5265776172647350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400ed0201dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400090301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804000d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400110301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000cd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66d102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365d9020138457865637574696f6e50686173650000d1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573d502014442547265655365743c5665633c75383e3e0000d5020420425472656553657404045401340004003901000000d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66d102013053746f7261676550726f6f660001386d69736d617463685f696e64657810010c7533320001003446696e616c697a65426c6f636b00020000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000e1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201d90100100124646f6d61696e5f6964c80120446f6d61696e4964000110736c6f74d80110536c6f7400013066697273745f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f6865616465729d0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000e5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c6964546f74616c5265776172647350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66d102013053746f7261676550726f6f660000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473f10201585665633c56616c696442756e646c654469676573743e0000f102000002f50200f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f646967657374f9020139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000f902000002fd0200fd02000004080103050300010304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66d102013053746f7261676550726f6f66000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964c80120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065bd020144496e76616c696442756e646c655479706500016465787472696e7369635f696e636c7573696f6e5f70726f6f66d102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f6629010110626f6f6c000015030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e74000019030c2873705f646f6d61696e730c617070185075626c69630000040098013c737232353531393a3a5075626c696300001d030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000021030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6525010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974790d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374250301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00002503082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304002903014c42547265655365743c4163636f756e7449643e00010000290304204254726565536574040454010000040071020000002d030c3870616c6c65745f646f6d61696e731c7374616b696e67205769746864726177041c42616c616e6365011801080c416c6c00000010536f6d65040018011c42616c616e63650001000031030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000108487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e7329010110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e736665727329010110626f6f6c000104b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e0015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573390301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3903000002e0003d030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964ec011c436861696e4964000118706172616d734103018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367490301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c450301444665654d6f64656c3c42616c616e63653e000045030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000049030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011470726f6f664d0301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f7461675d0301404d65737361676557656967687454616700004d030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f51030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66550301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66d102013053746f7261676550726f6f66000051030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000550304184f7074696f6e0404540159030108104e6f6e6500000010536f6d650400590300000100005903000004085103d102005d030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040061030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040061030120456e64706f696e74000300104e6f6e650004000061030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000065030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e690301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964ec011c436861696e49640001286163636f756e745f69646d0301384d756c74694163636f756e74496400006d030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004006d0201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000071030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577650201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f650201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c8d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400790301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404007d0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000079030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200007d03081c73705f636f726510566f69640001000081030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6525010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000089030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f708d03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74a103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00008d03042042547265654d617008044b0191030456019503000400990300000091030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000095030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e000099030000029d03009d03000004089103950300a103042042547265654d617008044b0191030456018d03000400a503000000a503000002a90300a9030000040891038d0300ad030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369738903012852617747656e6573697300011c76657273696f6e5901013852756e74696d6556657273696f6e00011068617368300110486173680000b1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273c103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000b503042042547265654d617008044b012c04560118000400b903000000b903000002bd0300bd03000004082c1800c10304204254726565536574040454012c000400c503000000c5030000022c00c9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f72081c42616c616e6365011814536861726501180024012c7369676e696e675f6b6579190301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461781d03011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e6365000130746f74616c5f7368617265731801145368617265000118737461747573cd0301384f70657261746f725374617475730000cd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f7253746174757300010c2852656769737465726564000000304465726567697374657265640001001c536c617368656400020000d103000004082c0000d5030c3870616c6c65745f646f6d61696e731c7374616b696e67244e6f6d696e61746f720414536861726501180004011873686172657318011453686172650000d903000004082c1000dd03000002e10300e1030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63685850656e64696e674e6f6d696e61746f72556e6c6f636b082c4e6f6d696e61746f72496401001c42616c616e63650118000801306e6f6d696e61746f725f696400012c4e6f6d696e61746f72496400011c62616c616e636518011c42616c616e63650000e50300000408c81000e903042042547265654d617008044b012c045601ed03000400f103000000ed030c3870616c6c65745f646f6d61696e73347374616b696e675f65706f63686050656e64696e674f70657261746f72536c617368496e666f082c4e6f6d696e61746f72496401001c42616c616e6365011800040150756e6c6f636b696e675f6e6f6d696e61746f7273dd0301c45665633c50656e64696e674e6f6d696e61746f72556e6c6f636b3c4e6f6d696e61746f7249642c2042616c616e63653e3e0000f103000002f50300f503000004082ced0300f9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669672103015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666ffd030144446f6d61696e52756e74696d65496e666f0000fd030c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e49640000000001040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074ad02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473c503013c5665633c4f70657261746f7249643e000005040000040cc810300009040000040cc81010000d040000021104001104082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800001504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273b503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000019040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e67651d0401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400001d04086073756273706163655f636f72655f7072696d69746976657310553235360000040021040148707269766174655f753235363a3a55323536000021040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f401205b7536343b20345d000025040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604002904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904002d04015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400310401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400350401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904003904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504003d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020074496e76616c6964546f74616c52657761726473467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c00002d040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e657369730008000031040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000174444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e63650003003442616c616e6365467265657a65000400504d696e696d756d4f70657261746f725374616b650005003c556e6b6e6f776e4f70657261746f72000600544d696e696d756d4e6f6d696e61746f725374616b650007003c42616c616e63654f766572666c6f770008004042616c616e6365556e646572666c6f77000900404e6f744f70657261746f724f776e6572000a00544f70657261746f724e6f7452656769737465726564000b0040556e6b6e6f776e4e6f6d696e61746f72000c00504578697374696e6746756c6c5769746864726177000d00504d697373696e674f70657261746f724f776e6572000e002c4d696e7442616c616e6365000f004c426c6f636b4e756d6265724f766572666c6f770010002852656d6f76654c6f636b001100285570646174654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f77001500745472794465706f7369745769746850656e64696e6757697468647261770016007454727957697468647261775769746850656e64696e674465706f73697400170078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001800484f70657261746f724e6f74416c6c6f77656400190064496e76616c69644f70657261746f725369676e696e674b6579001a00444d6178696d756d4e6f6d696e61746f7273001b006c4475706c69636174654f70657261746f725369676e696e674b6579001c000035040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f7200011c7046696e616c697a655377697463684f70657261746f72446f6d61696e04003104013c5472616e736974696f6e4572726f720000007846696e616c697a654f70657261746f724465726567697374726174696f6e04003104013c5472616e736974696f6e4572726f7200010038556e6c6f636b4f70657261746f7204003104013c5472616e736974696f6e4572726f720002007846696e616c697a65446f6d61696e50656e64696e675472616e736665727304003104013c5472616e736974696f6e4572726f720003003c556e6c6f636b4e6f6d696e61746f7204003104013c5472616e736974696f6e4572726f72000400544f70657261746f725265776172645374616b696e6704003104013c5472616e736974696f6e4572726f7200050034536c6173684f70657261746f7204003104013c5472616e736974696f6e4572726f720006000039040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c00003d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000c000041040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e0045300000400390301185665633c543e000045040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490400000408ecf0004d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f001244368616e6e656c49640001147374617465510401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f001144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f001144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565450301444665654d6f64656c3c42616c616e63653e00005104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000550404184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f0000001000059040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964ec011c436861696e49640001306473745f636861696e5f6964ec011c436861696e49640001286368616e6e656c5f6964f001244368616e6e656c49640001146e6f6e6365f001144e6f6e636500011c7061796c6f61645d04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365550401344f7074696f6e3c4e6f6e63653e00005d040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400610401405061796c6f61643c42616c616e63653e0000000061040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400650401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404006d0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000065040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401690420526573706f6e736501bc01081c5265717565737404006904011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000069040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040041030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f7365000100006d040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401710420526573706f6e736501750401081c5265717565737404007104011c5265717565737400000020526573706f6e7365040075040120526573706f6e73650001000071040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7461030120456e64706f696e740001306473745f656e64706f696e7461030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f6164000075040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000790400000408ec0101007d040000040cecf0f00081040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573850401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000850400000289040089040000040cec01015d03008d040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040091040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f727391040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200009504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572690301204c6f636174696f6e0001207265636569766572690301204c6f636174696f6e000099040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e9d040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574a104102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730165021043616c6c018d02245369676e617475726501a50414457874726101b50400040034000000a504082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400a9040148656432353531393a3a5369676e61747572650000001c537232353531390400a9010148737232353531393a3a5369676e61747572650001001445636473610400ad04014065636473613a3a5369676e617475726500020000a9040c1c73705f636f72651c65643235353139245369676e617475726500000400ad0101205b75383b2036345d0000ad040c1c73705f636f7265146563647361245369676e617475726500000400b10401205b75383b2036355d0000b104000003410000000800b50400000428b904bd04c104c504c904d104d504d904dd04e10400b90410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000bd0410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000c10410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000c50410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c90410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400cd04010c4572610000cd04102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000d10410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040021010120543a3a4e6f6e63650000d50410306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d904086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e0000dd040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000e1040c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000e504084073756273706163655f72756e74696d651c52756e74696d65000000003c1853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023015010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500001d0104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010029010400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010029010400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000d01040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e012d0101541830426c6f636b576569676874733d01f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684d013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687455014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e590161032073756273706163652073756273706163650000000005000000000000003cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000001000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669786d0108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017101002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e2444696455706461746501002901040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f0175010004344d696e696d756d506572696f642c20f401000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100d82000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100d820000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301007d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e67650100290104000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000d80400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040594c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040580840400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e7448656164657273010029010400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000089010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00008d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e5843757272656e74426c6f636b417574686f72496e666f000099010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f7465727301009d01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f7465727300009d010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100b901040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000cd010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58497353746f72616765416363657373456e61626c6564010029010400049420456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e58416c6c6f77417574686f72696e674279416e796f6e6501002901040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009404000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d1010178344c426c6f636b417574686f72696e6744656c6179d8200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179d8200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974790d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473ed01200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e11024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65ed01200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f726d0108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782901150202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405301902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805051d0211010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a034040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473000001a4082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002102040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003102040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402003d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020055020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01610201a814484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e466565731068436f6c6c656374656453746f7261676546656573457363726f770100184000000000000000000000000000000000085d0120457363726f77206f662073746f7261676520666565732c206120706f7274696f6e206f662069742069732072656c656173656420746f2074686520626c6f636b20617574686f72206f6e20657665727920626c6f636bd420616e6420706f7274696f6e206f662073746f72616765206665657320676f6573206261636b20696e746f207468697320706f742e485472616e73616374696f6e427974654665650000180400083d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e73206361636865642076616c7565206f66a020605472616e73616374696f6e427974654665656020666f722063757272656e7420626c6f636b2e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765b42063616e206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000790204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616ea4206973737565207265776172647320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b018504d696e5265706c69636174696f6e466163746f726d01080100084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e7053746f7261676546656573457363726f77426c6f636b5265776172640d02400100000000000000102700000000000008490120486f77206d7563682028726174696f29206f662073746f72616765206665657320657363726f772073686f756c6420626520676976656e20746f206661726d6572206561636820626c6f636b206173206120207265776172642e6453746f7261676546656573457363726f77426c6f636b5461780d024001000000000000000a0000000000000008590120486f77206d7563682028726174696f29206f662073746f72616765206665657320636f6c6c656374656420696e206120626c6f636b2073686f756c642062652070757420696e746f2073746f726167652066656573d820657363726f772028776974682072656d61696e696e672069737375656420746f206661726d657220696d6d6564696174656c79292e30437265646974537570706c791840a888583d4817f5f7337107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000ab51eec9b81400000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000e0135003000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201007d0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010081020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001850201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e018103081c446f6d61696e73011c446f6d61696e738c445375636365737366756c42756e646c657301010406c81101040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406c81101040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406108503040000605363686564756c656452756e74696d65557067726164657300010806061901ad03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040619032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c8b103040000244f70657261746f7273000104062cc903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406c8c10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e284e6f6d696e61746f72730001080606d103d5030400044101204c697374206f6620616c6c2063757272656e742065706f63682773206e6f6d696e61746f727320616e642074686569722073686172657320756e646572206120676976656e206f70657261746f722c384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3c50656e64696e674465706f736974730001080606d1031804000cd0204465706f7369747320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c207468657365206465706f7369747320617265207374616b656420626567696e6e696e67206e6578742065706f63682e4850656e64696e675769746864726177616c730001080606d1032d0304000cdc205769746864726177616c7320696e697469617465642061206e6f6d696e61746f7220756e6465722074686973206f70657261746f722e01012057696c6c2062652073746f7265642074656d706f726172696c7920756e74696c207468652063757272656e742065706f636820697320636f6d706c6574652e2501204f6e63652c2065706f636820697320636f6d706c6574652c2074686573652077696c6c206265206d6f76656420746f2050656e64696e674e6f6d696e61746f72556e6c6f636b732e7850656e64696e674f70657261746f724465726567697374726174696f6e7300010406c8c103040008c4204f70657261746f72732077686f2063686f736520746f20646572656769737465722066726f6d206120646f6d61696e2ee02053746f72656420686572652074656d706f726172696c7920756e74696c20646f6d61696e2065706f636820697320636f6d706c6574652e5850656e64696e674f70657261746f72556e6c6f636b730100c10304000c0d012053746f7265732061206c697374206f66206f70657261746f72732077686f2061726520756e6c6f636b696e6720696e2074686520636f6d696e6720626c6f636b732ee820546865206f70657261746f722077696c6c2062652072656d6f766564207768656e20746865207761697420706572696f64206973206f76657284206f72207768656e20746865206f70657261746f7220697320736c61736865642e5c50656e64696e674e6f6d696e61746f72556e6c6f636b730001080606d903dd03040008b020416c6c207468652070656e64696e6720756e6c6f636b7320666f7220746865206e6f6d696e61746f72732e91012057652075736520746869732073746f7261676520746f20666574636820616c6c207468652070656e64696e6720756e6c6f636b7320756e6465722061206f70657261746f7220706f6f6c206174207468652074696d65206f6620736c617368696e672e3850656e64696e67556e6c6f636b7300010406e503c10304000841012041206c697374206f66206f70657261746f72732074686174206172652065697468657220756e7265676973746572696e67206f72206f6e65206d6f7265206f6620746865206e6f6d696e61746f72738c20617265207769746864726177696e6720736f6d65207374616b65642066756e64732e3850656e64696e67536c617368657300010406c8e90304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8f903040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606e503300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063001040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c8290104000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406050430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b486173680001080606e5033004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c06060609040d040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c81504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406c8190404000001910201c44448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810100001000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e705374616b655769746864726177616c4c6f636b696e67506572696f64101000010000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640125040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967730c34456e61626c65446f6d61696e7301002901040004c0205768657468657220746f2064697361626c65207468652063616c6c7320696e2070616c6c65742d646f6d61696e732e58456e61626c6542616c616e63655472616e736665727301002901040004dc205768657468657220746f2064697361626c6520746865206e6f726d616c2062616c616e636573207472616e736665722063616c6c732e48436f6e6669726d6174696f6e44657074684b0100101000000000000131030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200410404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01350301dc04444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0145040d244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406ecf080000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060649044d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000059040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040679041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406790418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104067d04590404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104067d04590404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300005904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000081040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e013d0301e800018d043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e7366657273000108060679049504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e01650301fc000199043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01710301050100019d0464a104042848436865636b4e6f6e5a65726f53656e646572b904c040436865636b5370656356657273696f6ebd041038436865636b547856657273696f6ec1041030436865636b47656e65736973c5043038436865636b4d6f7274616c697479c9043028436865636b4e6f6e6365d104c02c436865636b576569676874d504c0604368617267655472616e73616374696f6e5061796d656e74d904c048436865636b53746f72616765416363657373dd04c03844697361626c6550616c6c657473e104c0e504"} diff --git a/indexers/rewards-squid/gemini3h.jsonl b/indexers/rewards-squid/gemini3h.jsonl deleted file mode 100644 index 282e131f6..000000000 --- a/indexers/rewards-squid/gemini3h.jsonl +++ /dev/null @@ -1,6 +0,0 @@ -{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} -{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} -{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":4,"blockNumber":926644,"blockHash":"0x61855974474c35004ca646706addac3d52b9db2f8aac132de64e83cbf2d3fc07","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f66000300001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000040000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d030000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e4279746546656518406e762244010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c791840905495f8b1a972e62eae07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000bfd079fe4e2f01000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840008058c00e000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} -{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} \ No newline at end of file diff --git a/indexers/rewards-squid/package-lock.json b/indexers/rewards-squid/package-lock.json deleted file mode 100644 index d47959699..000000000 --- a/indexers/rewards-squid/package-lock.json +++ /dev/null @@ -1,5208 +0,0 @@ -{ - "name": "rewards-squid", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "rewards-squid", - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@polkadot/api": "^10.11.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@apollo/protobufjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", - "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/@apollo/usage-reporting-protobuf": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", - "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", - "dependencies": { - "@apollo/protobufjs": "1.2.7" - } - }, - "node_modules/@apollo/utils.dropunuseddefinitions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", - "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.keyvadapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", - "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "dataloader": "^2.1.0", - "keyv": "^4.4.0" - } - }, - "node_modules/@apollo/utils.keyvaluecache": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", - "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", - "dependencies": { - "@apollo/utils.logger": "^1.0.0", - "lru-cache": "7.10.1 - 7.13.1" - } - }, - "node_modules/@apollo/utils.logger": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", - "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" - }, - "node_modules/@apollo/utils.printwithreducedwhitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", - "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.removealiases": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", - "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.sortast": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", - "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", - "dependencies": { - "lodash.sortby": "^4.7.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.stripsensitiveliterals": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", - "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollo/utils.usagereporting": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", - "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", - "dependencies": { - "@apollo/usage-reporting-protobuf": "^4.0.0", - "@apollo/utils.dropunuseddefinitions": "^1.1.0", - "@apollo/utils.printwithreducedwhitespace": "^1.1.0", - "@apollo/utils.removealiases": "1.0.0", - "@apollo/utils.sortast": "^1.1.0", - "@apollo/utils.stripsensitiveliterals": "^1.2.0" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "graphql": "14.x || 15.x || 16.x" - } - }, - "node_modules/@apollographql/apollo-tools": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", - "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", - "engines": { - "node": ">=8", - "npm": ">=6" - }, - "peerDependencies": { - "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@apollographql/graphql-playground-html": { - "version": "1.6.29", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", - "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", - "dependencies": { - "xss": "^1.0.8" - } - }, - "node_modules/@belopash/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@belopash/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-OvXrZHP21tLKRK+8ysFfvlRHXFpEFz/Nj8GEzZOHn0jPzIpr15swNHVRx1xABLyG994P0H/JCR9FEu8e7z4Tag==", - "dependencies": { - "@subsquid/logger": "^1.3.3", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/typeorm-store": "^1.3.0", - "pg": "^8.11.3", - "typeorm": "^0.3.16" - } - }, - "node_modules/@belopash/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" - }, - "node_modules/@exodus/schemasafe": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", - "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", - "dev": true - }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", - "dependencies": { - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock": { - "version": "8.7.20", - "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", - "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", - "dependencies": { - "@graphql-tools/schema": "^9.0.18", - "@graphql-tools/utils": "^9.2.1", - "fast-json-stable-stringify": "^2.1.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", - "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", - "dependencies": { - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { - "version": "9.0.19", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", - "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", - "dependencies": { - "@graphql-tools/merge": "^8.4.1", - "@graphql-tools/utils": "^9.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.13.tgz", - "integrity": "sha512-fMILwGr5Dm2zefNItjQ6C2rauigklv69LIwppccICuGTnGaOp3DspLt/6Lxj72cbg5d9z60Sr+Egco3CJKLsNg==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@ioredis/commands": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", - "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@josephg/resolvable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", - "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" - }, - "node_modules/@keyv/redis": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", - "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", - "dependencies": { - "ioredis": "^5.3.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@noble/curves": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", - "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", - "dependencies": { - "@noble/hashes": "1.3.3" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@polkadot/api": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-10.11.2.tgz", - "integrity": "sha512-AorCZxCWCoTtdbl4DPUZh+ACe/pbLIS1BkdQY0AFJuZllm0x/yWzjgampcPd5jQAA/O3iKShRBkZqj6Mk9yG/A==", - "dependencies": { - "@polkadot/api-augment": "10.11.2", - "@polkadot/api-base": "10.11.2", - "@polkadot/api-derive": "10.11.2", - "@polkadot/keyring": "^12.6.2", - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/rpc-core": "10.11.2", - "@polkadot/rpc-provider": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", - "@polkadot/types-known": "10.11.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "eventemitter3": "^5.0.1", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-10.11.2.tgz", - "integrity": "sha512-PTpnqpezc75qBqUtgrc0GYB8h9UHjfbHSRZamAbecIVAJ2/zc6CqtnldeaBlIu1IKTgBzi3FFtTyYu+ZGbNT2Q==", - "dependencies": { - "@polkadot/api-base": "10.11.2", - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-base": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-10.11.2.tgz", - "integrity": "sha512-4LIjaUfO9nOzilxo7XqzYKCNMtmUypdk8oHPdrRnSjKEsnK7vDsNi+979z2KXNXd2KFSCFHENmI523fYnMnReg==", - "dependencies": { - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/util": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/api-derive": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-10.11.2.tgz", - "integrity": "sha512-m3BQbPionkd1iSlknddxnL2hDtolPIsT+aRyrtn4zgMRPoLjHFmTmovvg8RaUyYofJtZeYrnjMw0mdxiSXx7eA==", - "dependencies": { - "@polkadot/api": "10.11.2", - "@polkadot/api-augment": "10.11.2", - "@polkadot/api-base": "10.11.2", - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/keyring": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", - "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==", - "dependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/util-crypto": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/util-crypto": "12.6.2" - } - }, - "node_modules/@polkadot/networks": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", - "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==", - "dependencies": { - "@polkadot/util": "12.6.2", - "@substrate/ss58-registry": "^1.44.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-10.11.2.tgz", - "integrity": "sha512-9AhT0WW81/8jYbRcAC6PRmuxXqNhJje8OYiulBQHbG1DTCcjAfz+6VQBke9BwTStzPq7d526+yyBKD17O3zlAA==", - "dependencies": { - "@polkadot/rpc-core": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-core": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-10.11.2.tgz", - "integrity": "sha512-Ot0CFLWx8sZhLZog20WDuniPA01Bk2StNDsdAQgcFKPwZw6ShPaZQCHuKLQK6I6DodOrem9FXX7c1hvoKJP5Ww==", - "dependencies": { - "@polkadot/rpc-augment": "10.11.2", - "@polkadot/rpc-provider": "10.11.2", - "@polkadot/types": "10.11.2", - "@polkadot/util": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/rpc-provider": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-10.11.2.tgz", - "integrity": "sha512-he5jWMpDJp7e+vUzTZDzpkB7ps3H8psRally+/ZvZZScPvFEjfczT7I1WWY9h58s8+ImeVP/lkXjL9h/gUOt3Q==", - "dependencies": { - "@polkadot/keyring": "^12.6.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-support": "10.11.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "@polkadot/x-fetch": "^12.6.2", - "@polkadot/x-global": "^12.6.2", - "@polkadot/x-ws": "^12.6.2", - "eventemitter3": "^5.0.1", - "mock-socket": "^9.3.1", - "nock": "^13.4.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@substrate/connect": "0.7.35" - } - }, - "node_modules/@polkadot/types": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-10.11.2.tgz", - "integrity": "sha512-d52j3xXni+C8GdYZVTSfu8ROAnzXFMlyRvXtor0PudUc8UQHOaC4+mYAkTBGA2gKdmL8MHSfRSbhcxHhsikY6Q==", - "dependencies": { - "@polkadot/keyring": "^12.6.2", - "@polkadot/types-augment": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", - "@polkadot/util": "^12.6.2", - "@polkadot/util-crypto": "^12.6.2", - "rxjs": "^7.8.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-augment": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-10.11.2.tgz", - "integrity": "sha512-8eB8ew04wZiE5GnmFvEFW1euJWmF62SGxb1O+8wL3zoUtB9Xgo1vB6w6xbTrd+HLV6jNSeXXnbbF1BEUvi9cNg==", - "dependencies": { - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-codec": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-10.11.2.tgz", - "integrity": "sha512-3xjOQL+LOOMzYqlgP9ROL0FQnzU8lGflgYewzau7AsDlFziSEtb49a9BpYo6zil4koC+QB8zQ9OHGFumG08T8w==", - "dependencies": { - "@polkadot/util": "^12.6.2", - "@polkadot/x-bigint": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-create": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-10.11.2.tgz", - "integrity": "sha512-SJt23NxYvefRxVZZm6mT9ed1pR6FDoIGQ3xUpbjhTLfU2wuhpKjekMVorYQ6z/gK2JLMu2kV92Ardsz+6GX5XQ==", - "dependencies": { - "@polkadot/types-codec": "10.11.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-known": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-10.11.2.tgz", - "integrity": "sha512-kbEIX7NUQFxpDB0FFGNyXX/odY7jbp56RGD+Z4A731fW2xh/DgAQrI994xTzuh0c0EqPE26oQm3kATSpseqo9w==", - "dependencies": { - "@polkadot/networks": "^12.6.2", - "@polkadot/types": "10.11.2", - "@polkadot/types-codec": "10.11.2", - "@polkadot/types-create": "10.11.2", - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/types-support": { - "version": "10.11.2", - "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-10.11.2.tgz", - "integrity": "sha512-X11hoykFYv/3efg4coZy2hUOUc97JhjQMJLzDhHniFwGLlYU8MeLnPdCVGkXx0xDDjTo4/ptS1XpZ5HYcg+gRw==", - "dependencies": { - "@polkadot/util": "^12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/util": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", - "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==", - "dependencies": { - "@polkadot/x-bigint": "12.6.2", - "@polkadot/x-global": "12.6.2", - "@polkadot/x-textdecoder": "12.6.2", - "@polkadot/x-textencoder": "12.6.2", - "@types/bn.js": "^5.1.5", - "bn.js": "^5.2.1", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/util-crypto": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz", - "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==", - "dependencies": { - "@noble/curves": "^1.3.0", - "@noble/hashes": "^1.3.3", - "@polkadot/networks": "12.6.2", - "@polkadot/util": "12.6.2", - "@polkadot/wasm-crypto": "^7.3.2", - "@polkadot/wasm-util": "^7.3.2", - "@polkadot/x-bigint": "12.6.2", - "@polkadot/x-randomvalues": "12.6.2", - "@scure/base": "^1.1.5", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2" - } - }, - "node_modules/@polkadot/wasm-bridge": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz", - "integrity": "sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==", - "dependencies": { - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz", - "integrity": "sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==", - "dependencies": { - "@polkadot/wasm-bridge": "7.3.2", - "@polkadot/wasm-crypto-asmjs": "7.3.2", - "@polkadot/wasm-crypto-init": "7.3.2", - "@polkadot/wasm-crypto-wasm": "7.3.2", - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-asmjs": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz", - "integrity": "sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-init": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz", - "integrity": "sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==", - "dependencies": { - "@polkadot/wasm-bridge": "7.3.2", - "@polkadot/wasm-crypto-asmjs": "7.3.2", - "@polkadot/wasm-crypto-wasm": "7.3.2", - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*", - "@polkadot/x-randomvalues": "*" - } - }, - "node_modules/@polkadot/wasm-crypto-wasm": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz", - "integrity": "sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==", - "dependencies": { - "@polkadot/wasm-util": "7.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/wasm-util": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz", - "integrity": "sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "*" - } - }, - "node_modules/@polkadot/x-bigint": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", - "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-fetch": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", - "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "node-fetch": "^3.3.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-global": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", - "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==", - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-randomvalues": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", - "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@polkadot/util": "12.6.2", - "@polkadot/wasm-util": "*" - } - }, - "node_modules/@polkadot/x-textdecoder": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", - "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-textencoder": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", - "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@polkadot/x-ws": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", - "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==", - "dependencies": { - "@polkadot/x-global": "12.6.2", - "tslib": "^2.6.2", - "ws": "^8.15.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@scure/base": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", - "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", - "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" - }, - "node_modules/@subsquid/archive-registry": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/archive-registry/-/archive-registry-3.3.0.tgz", - "integrity": "sha512-moXnGNOSmKMHyuDvUiOHbpL7IePSo4XZOW9OnzESIND64eGxlKusIsCi8Nth1DgzbE/UTTFeNJvYKu0v7SOIqw==", - "dependencies": { - "@subsquid/util-internal": "^1.0.0", - "commander": "^10.0.0", - "easy-table": "^1.2.0", - "sync-fetch": "^0.5.2" - }, - "bin": { - "squid-archive-registry": "bin/run.js" - } - }, - "node_modules/@subsquid/graphiql-console": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", - "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" - }, - "node_modules/@subsquid/graphql-server": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.0.tgz", - "integrity": "sha512-SKCq6qF8FGrsrzFpjLzyDf3Cbcp4e8Z2M+t6Er3en7WLY3jZtdEGf3HbfCH6ukhQoJ72lUSNsESdwEoazOslRA==", - "dependencies": { - "@apollo/utils.keyvadapter": "~1.1.2", - "@apollo/utils.keyvaluecache": "~1.0.2", - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/schema": "^10.0.2", - "@graphql-tools/utils": "^10.0.11", - "@keyv/redis": "~2.5.8", - "@subsquid/logger": "^1.3.2", - "@subsquid/openreader": "^4.5.0", - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "apollo-server-plugin-response-cache": "~3.7.1", - "commander": "^11.1.0", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-ws": "^5.14.2", - "keyv": "~4.5.4", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "squid-graphql-server": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0", - "class-validator": "^0.14.0", - "type-graphql": "^1.2.0-rc.1", - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - }, - "class-validator": { - "optional": true - }, - "type-graphql": { - "optional": true - }, - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/graphql-server/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/graphql-server/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/http-client": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.3.2.tgz", - "integrity": "sha512-N9fXB2TCYzzT4CNoTibpgk4lMFNU463/ZQcSstPPMIpZA9QdDjY+mNdjLTi8L+4DzimgjEbwYfLQX5aINYvkMA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "node-fetch": "^3.3.2" - } - }, - "node_modules/@subsquid/http-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/logger": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", - "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2", - "supports-color": "^8.1.1" - } - }, - "node_modules/@subsquid/openreader": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.0.tgz", - "integrity": "sha512-A07K1TM0YY2iZjJcY2qD0jXco1S7D00OfqAnN4tqxVtj4ddLJVZ3bLIAHn7r3P3JB4iT+3daBNTTa17vH1k2XA==", - "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@subsquid/graphiql-console": "^0.3.0", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-http-server": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "apollo-server-core": "^3.13.0", - "apollo-server-express": "^3.13.0", - "commander": "^11.1.0", - "deep-equal": "^2.2.3", - "express": "^4.18.2", - "graphql": "^15.8.0", - "graphql-parse-resolve-info": "^4.14.0", - "graphql-ws": "^5.14.2", - "pg": "^8.11.3", - "ws": "^8.14.2" - }, - "bin": { - "openreader": "bin/main.js" - }, - "peerDependencies": { - "@subsquid/big-decimal": "^1.0.0" - }, - "peerDependenciesMeta": { - "@subsquid/big-decimal": { - "optional": true - } - } - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/openreader/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/openreader/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/rpc-client": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.6.0.tgz", - "integrity": "sha512-fVTsVOag6Ge7hRqV+st9p+E+BgQa5PPu1uJns5IXSrRtIuAuy++w0OsB3WNA+EC8DZarpllxi7I3snzJpis/xQ==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "websocket": "^1.0.34" - } - }, - "node_modules/@subsquid/rpc-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/scale-codec": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", - "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-json": "^1.2.2" - } - }, - "node_modules/@subsquid/scale-type-system": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", - "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, - "dependencies": { - "@subsquid/util-internal": "^3.0.0" - }, - "peerDependencies": { - "@subsquid/scale-codec": "^4.0.1" - } - }, - "node_modules/@subsquid/scale-type-system/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/ss58": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", - "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", - "dependencies": { - "@subsquid/ss58-codec": "^1.2.3", - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/ss58-codec": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", - "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", - "dependencies": { - "base-x": "^4.0.0", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-data": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.1.tgz", - "integrity": "sha512-1eluGvrSiXuQZJdg9Ihtbem0Kl72Ahz54Nexi+UM2WviPmSn7XYA2k/OUBK9dD6KBIAFayN7r99S6YtDgJhrqA==", - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/substrate-data-raw": "^1.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-xxhash": "^1.2.2", - "@substrate/calc": "^0.2.8", - "blake2b": "^2.1.4" - }, - "peerDependencies": { - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-data-raw": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.0.tgz", - "integrity": "sha512-wiFF2sE7enBSfr84voGdQ4o26nxB1lLF2PcuU7QJawebPWNtQCCcBfRCWZekaqhkF+Y/4uFpOI3krTFvqlo5rw==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-range": "^0.1.0", - "@subsquid/util-timeout": "^2.3.2" - }, - "peerDependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0" - } - }, - "node_modules/@subsquid/substrate-data-raw/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-data/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-metadata-explorer": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", - "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", - "dev": true, - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.5.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-commander": "^1.3.2", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-metadata-explorer": "bin/run.js", - "substrate-metadata-explorer": "bin/run.js" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/@subsquid/util-internal-commander": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", - "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", - "dev": true, - "peerDependencies": { - "commander": "^11.1.0" - } - }, - "node_modules/@subsquid/substrate-metadata-explorer/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/substrate-processor": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.1.1.tgz", - "integrity": "sha512-SB4rsNZDihzSy9PuVKi/KuoYhl/apnQaJAIAb7nBOYlk1kOzG3+jEEk3SxR53JYFuTelrwK/AY9lS4e+LwiDCg==", - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/rpc-client": "^4.6.0", - "@subsquid/substrate-data": "^4.0.0", - "@subsquid/substrate-data-raw": "^1.0.1", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-archive-client": "^0.1.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-internal-ingest-tools": "^1.1.0", - "@subsquid/util-internal-json": "^1.2.2", - "@subsquid/util-internal-processor-tools": "^4.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-processor/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/substrate-runtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-1.0.3.tgz", - "integrity": "sha512-3uNZqyHKzoMkSHQTZIJl1G7NiKyFl4cmDzVY3dU0o4VZhGNUAmR+HecT3WBkMMYye6uhDAeXsbVECa3ZnMM3gQ==", - "peer": true, - "dependencies": { - "@subsquid/scale-codec": "^4.0.1", - "@subsquid/scale-type-system": "^1.0.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-hex": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "@subsquid/util-xxhash": "^1.2.2", - "blake2b": "^2.1.4" - } - }, - "node_modules/@subsquid/substrate-runtime/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "peer": true - }, - "node_modules/@subsquid/substrate-typegen": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.0.2.tgz", - "integrity": "sha512-JraheRh2ZdM1BoVF79DjhU/BIifuIlwyo2/DmL0RuGaslk6F/VGJ0gWSTpCZr6A2F3hlNFzLvzeZPO/xgH/JMg==", - "dev": true, - "dependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2", - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-config": "^2.2.2", - "@subsquid/util-internal-read-lines": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-substrate-typegen": "bin/run.js" - }, - "peerDependencies": { - "@subsquid/substrate-runtime": "^1.0.2" - } - }, - "node_modules/@subsquid/substrate-typegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/substrate-typegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-codegen": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-1.3.3.tgz", - "integrity": "sha512-6k1oRWnaBNX4GZX737dvZll925uZKt2or/oXNaQRnHAmrCISkIEz7dYkl6PFfppYuardch41FBSFmOQaovPCXw==", - "dev": true, - "dependencies": { - "@subsquid/openreader": "^4.4.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-naming": "^1.2.2", - "commander": "^11.1.0" - }, - "bin": { - "squid-typeorm-codegen": "bin/run.js" - } - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==", - "dev": true - }, - "node_modules/@subsquid/typeorm-codegen/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-config": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", - "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "@subsquid/util-naming": "^1.2.2" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - }, - "peerDependenciesMeta": { - "typeorm": { - "optional": true - } - } - }, - "node_modules/@subsquid/typeorm-migration": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", - "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-code-printer": "^1.2.2", - "@subsquid/util-internal-ts-node": "^0.0.0", - "commander": "^11.1.0", - "dotenv": "^16.3.1" - }, - "bin": { - "squid-typeorm-migration": "bin/squid-typeorm-migration", - "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", - "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", - "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", - "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-migration/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/typeorm-migration/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/@subsquid/typeorm-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.3.0.tgz", - "integrity": "sha512-32jwKA2fEYuGpyKEisKOlrz6JTd0hXTXOLC9S4IIsOnhkY70Ua69QDe0CCTgKTrvMNOCwk3gPR+q8RwrlEMupQ==", - "peer": true, - "dependencies": { - "@subsquid/typeorm-config": "^4.1.0", - "@subsquid/util-internal": "^3.1.0" - }, - "peerDependencies": { - "typeorm": "^0.3.17" - } - }, - "node_modules/@subsquid/typeorm-store/node_modules/@subsquid/util-internal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", - "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==", - "peer": true - }, - "node_modules/@subsquid/util-internal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-1.1.0.tgz", - "integrity": "sha512-O6m666RDcWEw4vb3bmeNZKlAa1rGOHQvS0nhZFTBXnxZpqK/pU5N0jrQ7X/3is0pY2RKxFoxTurZjhv4QdxtqA==" - }, - "node_modules/@subsquid/util-internal-archive-client": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.0.tgz", - "integrity": "sha512-bXFNZvXduKzG3NjPLmFPU5B+r+UHXT45Yr5YOpgD9sZvrHbNc/n877jSEt1qnzUJKnTl1hxtXlXvpwIBEjKT3Q==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/http-client": "^1.3.2", - "@subsquid/logger": "^1.3.2" - }, - "peerDependenciesMeta": { - "@subsquid/logger": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-archive-client/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-binary-heap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", - "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" - }, - "node_modules/@subsquid/util-internal-code-printer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", - "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" - }, - "node_modules/@subsquid/util-internal-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", - "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", - "dev": true, - "dependencies": { - "@exodus/schemasafe": "^1.3.0", - "jsonc-parser": "^3.2.0" - } - }, - "node_modules/@subsquid/util-internal-counters": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", - "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" - }, - "node_modules/@subsquid/util-internal-hex": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", - "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" - }, - "node_modules/@subsquid/util-internal-http-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-1.2.2.tgz", - "integrity": "sha512-B2SOSz8frUkXarbsELljew25iXFFyATEtS8NV31xKUXmhYfPklqrcF4YNJ/aLlfCtVOiR042YKVZDx2T8RbN6w==", - "dependencies": { - "stoppable": "^1.1.0" - } - }, - "node_modules/@subsquid/util-internal-ingest-tools": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.0.tgz", - "integrity": "sha512-Zk5IPrclv+OrAV6EFQWGQS86YfN51/tLKKW137VzFPCWNEBSPCXu5lYe/hCwwW34k+gtf5TYLb3s69d2P1e/lg==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-range": "^0.1.0" - }, - "peerDependencies": { - "@subsquid/util-internal-archive-client": "^0.1.0" - }, - "peerDependenciesMeta": { - "@subsquid/util-internal-archive-client": { - "optional": true - } - } - }, - "node_modules/@subsquid/util-internal-ingest-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-json": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.2.tgz", - "integrity": "sha512-+axQnlkIzscdy0T/vR1Dez/2NVCryWgB3OocMGJcx2GjhHVkmuJSLFqOdk9o90OocfQFC57NTZx22oa2yd+4Yw==", - "dependencies": { - "@subsquid/util-internal-hex": "^1.2.2" - } - }, - "node_modules/@subsquid/util-internal-processor-tools": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.0.1.tgz", - "integrity": "sha512-2+IOze7VkgUuJqRThzq6QDO+xNd6CAbPUgtjgOi6EB3/ImrJXEjENBOFzTVSTP0Ri+kT/CyoyBPniyGBGzogiA==", - "dependencies": { - "@subsquid/logger": "^1.3.2", - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-counters": "^1.3.2", - "@subsquid/util-internal-prometheus-server": "^1.2.2", - "@subsquid/util-internal-range": "^0.1.0", - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-processor-tools/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-prometheus-server": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.2.2.tgz", - "integrity": "sha512-KOjokVhs+qJOZSkM+NPZ/XE5bGvEGGJkVbMaJJfaZ+UfZQPQDfVJrI2rPV5D9FwzctxKG9b7lPArryBIUsgrZw==", - "dependencies": { - "@subsquid/util-internal-http-server": "^1.2.2" - }, - "peerDependencies": { - "prom-client": "^14.2.0" - } - }, - "node_modules/@subsquid/util-internal-range": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.1.0.tgz", - "integrity": "sha512-+pJeJyH0oetqu2eRwOkP7NCSaCGzLpCCNpS9Fwi968RL+LfWSKn+wGUX6Ulf0afSslvrQ/34ZtyWdjyya1AGxA==", - "dependencies": { - "@subsquid/util-internal": "^3.0.0", - "@subsquid/util-internal-binary-heap": "^1.0.0" - } - }, - "node_modules/@subsquid/util-internal-range/node_modules/@subsquid/util-internal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.0.0.tgz", - "integrity": "sha512-aGPTiLF21N9f67DgHS4PBR8d6mdvXHTOIhr2mFQPX7GQCgZhNlCZDM/1Sqn+teJawCy3w6Y9f6KOtVbN4T5SFQ==" - }, - "node_modules/@subsquid/util-internal-read-lines": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", - "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", - "dev": true - }, - "node_modules/@subsquid/util-internal-ts-node": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", - "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" - }, - "node_modules/@subsquid/util-naming": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", - "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", - "dependencies": { - "camelcase": "^6.3.0", - "inflected": "^2.1.0" - } - }, - "node_modules/@subsquid/util-timeout": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", - "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" - }, - "node_modules/@subsquid/util-xxhash": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", - "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", - "dependencies": { - "xxhash-wasm": "^1.0.2", - "xxhashjs": "^0.2.2" - } - }, - "node_modules/@substrate/calc": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", - "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" - }, - "node_modules/@substrate/connect": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.35.tgz", - "integrity": "sha512-Io8vkalbwaye+7yXfG1Nj52tOOoJln2bMlc7Q9Yy3vEWqZEVkgKmcPVzbwV0CWL3QD+KMPDA2Dnw/X7EdwgoLw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@substrate/connect-extension-protocol": "^1.0.1", - "smoldot": "2.0.7" - } - }, - "node_modules/@substrate/connect-extension-protocol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz", - "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg==", - "optional": true - }, - "node_modules/@substrate/ss58-registry": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.46.0.tgz", - "integrity": "sha512-rBvWnlrBeFTd5LVG7oX3rOHzR16yqyffOFHKmUiVcblpXI3D89CXOvAljW9tWlA1H/2/FegaZnHPhdObPsvi+w==" - }, - "node_modules/@types/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", - "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" - }, - "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mime": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", - "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==" - }, - "node_modules/@types/node": { - "version": "20.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", - "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/apollo-datasource": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", - "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", - "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-reporting-protobuf": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", - "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", - "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/protobufjs": "1.2.6" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", - "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "bin": { - "apollo-pbjs": "bin/pbjs", - "apollo-pbts": "bin/pbts" - } - }, - "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { - "version": "10.17.60", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", - "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" - }, - "node_modules/apollo-server-core": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", - "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "@apollo/utils.usagereporting": "^1.0.0", - "@apollographql/apollo-tools": "^0.5.3", - "@apollographql/graphql-playground-html": "1.6.29", - "@graphql-tools/mock": "^8.1.2", - "@graphql-tools/schema": "^8.0.0", - "@josephg/resolvable": "^1.0.0", - "apollo-datasource": "^3.3.2", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1", - "apollo-server-errors": "^3.3.1", - "apollo-server-plugin-base": "^3.7.2", - "apollo-server-types": "^3.8.0", - "async-retry": "^1.2.1", - "fast-json-stable-stringify": "^2.1.0", - "graphql-tag": "^2.11.0", - "loglevel": "^1.6.8", - "lru-cache": "^6.0.0", - "node-abort-controller": "^3.0.1", - "sha.js": "^2.4.11", - "uuid": "^9.0.0", - "whatwg-mimetype": "^3.0.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", - "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", - "dependencies": { - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", - "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", - "dependencies": { - "@graphql-tools/merge": "8.3.1", - "@graphql-tools/utils": "8.9.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", - "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", - "dependencies": { - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/apollo-server-core/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/apollo-server-core/node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/apollo-server-env": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", - "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", - "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "node-fetch": "^2.6.7" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/apollo-server-env/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/apollo-server-errors": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", - "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", - "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-express": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", - "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", - "dependencies": { - "@types/accepts": "^1.3.5", - "@types/body-parser": "1.19.2", - "@types/cors": "2.8.12", - "@types/express": "4.17.14", - "@types/express-serve-static-core": "4.17.31", - "accepts": "^1.3.5", - "apollo-server-core": "^3.13.0", - "apollo-server-types": "^3.8.0", - "body-parser": "^1.19.0", - "cors": "^2.8.5", - "parseurl": "^1.3.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "express": "^4.17.1", - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-base": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", - "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", - "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "apollo-server-types": "^3.8.0" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-plugin-response-cache": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", - "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", - "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "apollo-server-plugin-base": "^3.6.3", - "apollo-server-types": "^3.6.3" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/apollo-server-types": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", - "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", - "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", - "dependencies": { - "@apollo/utils.keyvaluecache": "^1.0.1", - "@apollo/utils.logger": "^1.0.0", - "apollo-reporting-protobuf": "^3.4.0", - "apollo-server-env": "^4.2.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "graphql": "^15.3.0 || ^16.0.0" - } - }, - "node_modules/app-root-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", - "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/async-retry": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", - "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", - "dependencies": { - "retry": "0.13.1" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz", - "integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, - "node_modules/blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cli-highlight/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cli-highlight/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-highlight/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/cluster-key-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", - "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-inspect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", - "dependencies": { - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" - }, - "node_modules/cuint": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-equal": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", - "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "optional": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/dotenv": { - "version": "16.4.4", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.4.tgz", - "integrity": "sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dset": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz", - "integrity": "sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "optionalDependencies": { - "wcwidth": "^1.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", - "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "is-arguments": "^1.1.1", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.7", - "isarray": "^2.0.5", - "stop-iteration-iterator": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.62", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", - "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/express/node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-parse-resolve-info": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", - "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", - "dependencies": { - "debug": "^4.1.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "peerDependencies": { - "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/graphql-parse-resolve-info/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/graphql-ws": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.15.0.tgz", - "integrity": "sha512-xWGAtm3fig9TIhSaNsg0FaDZ8Pyn/3re3RFlP4rhQcmjRDIPpk1EhRuNB+YSJtLzttyuToaDiNhwT1OMoGnJnw==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": ">=0.11 <=16" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflected": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", - "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ioredis": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", - "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", - "dependencies": { - "@ioredis/commands": "^1.1.1", - "cluster-key-slot": "^1.1.0", - "debug": "^4.3.4", - "denque": "^2.1.0", - "lodash.defaults": "^4.2.0", - "lodash.isarguments": "^3.1.0", - "redis-errors": "^1.2.0", - "redis-parser": "^3.0.0", - "standard-as-callback": "^2.1.0" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ioredis" - } - }, - "node_modules/ioredis/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ioredis/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" - }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" - }, - "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru-cache": { - "version": "7.13.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", - "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", - "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", - "bin": { - "mkdirp": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mock-socket": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", - "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "node_modules/nock": { - "version": "13.5.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.3.tgz", - "integrity": "sha512-2NlGmHIK2rTeyy7UaY1ZNg0YZfEJMxghXgZi0b4DBsUyoDNTTxZeCSG1nmirAWF44RkkoV8NnegLVQijgVapNQ==", - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/nock/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nock/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prom-client": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", - "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", - "dependencies": { - "tdigest": "^0.1.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/redis-errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", - "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", - "engines": { - "node": ">=4" - } - }, - "node_modules/redis-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", - "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", - "dependencies": { - "redis-errors": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", - "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", - "dependencies": { - "define-data-property": "^1.1.2", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", - "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/smoldot": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.7.tgz", - "integrity": "sha512-VAOBqEen6vises36/zgrmAT1GWk2qE3X8AGnO7lmQFdskbKx8EovnwS22rtPAG+Y1Rk23/S22kDJUdPANyPkBA==", - "optional": true, - "dependencies": { - "ws": "^8.8.1" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/standard-as-callback": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", - "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", - "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", - "dependencies": { - "internal-slot": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/sync-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.5.2.tgz", - "integrity": "sha512-6gBqqkHrYvkH65WI2bzrDwrIKmt3U10s4Exnz3dYuE5Ah62FIfNv/F63inrNhu2Nyh3GH5f42GKU3RrSJoaUyQ==", - "dependencies": { - "node-fetch": "^2.6.1" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/sync-fetch/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typeorm": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", - "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.5", - "app-root-path": "^3.1.0", - "buffer": "^6.0.3", - "chalk": "^4.1.2", - "cli-highlight": "^2.1.11", - "dayjs": "^1.11.9", - "debug": "^4.3.4", - "dotenv": "^16.0.3", - "glob": "^10.3.10", - "mkdirp": "^2.1.3", - "reflect-metadata": "^0.2.1", - "sha.js": "^2.4.11", - "tslib": "^2.5.0", - "uuid": "^9.0.0", - "yargs": "^17.6.2" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">=16.13.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^5.8.0", - "mssql": "^9.1.1 || ^10.0.1", - "mysql2": "^2.2.5 || ^3.0.1", - "oracledb": "^6.3.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "optional": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/websocket": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", - "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", - "dependencies": { - "bufferutil": "^4.0.1", - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "typedarray-to-buffer": "^3.1.5", - "utf-8-validate": "^5.0.2", - "yaeti": "^0.0.6" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", - "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xss": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.14.tgz", - "integrity": "sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==", - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/xss/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" - }, - "node_modules/xxhashjs": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", - "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", - "dependencies": { - "cuint": "^0.2.2" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yaeti": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", - "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", - "engines": { - "node": ">=0.10.32" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - } - } -} diff --git a/indexers/rewards-squid/package.json b/indexers/rewards-squid/package.json deleted file mode 100644 index 2a5e088e3..000000000 --- a/indexers/rewards-squid/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "rewards-squid", - "private": true, - "engines": { - "node": ">=16" - }, - "scripts": { - "build": "rm -rf lib && tsc", - "db:migrate": "npx squid-typeorm-migration apply", - "processor:start": "node lib/processor.js" - }, - "dependencies": { - "@belopash/typeorm-store": "^1.3.0", - "@polkadot/api": "^10.11.2", - "@subsquid/archive-registry": "^3.3.0", - "@subsquid/graphql-server": "^4.5.0", - "@subsquid/ss58": "^2.0.2", - "@subsquid/substrate-processor": "^8.1.1", - "@subsquid/typeorm-migration": "^1.3.0", - "dotenv": "^16.4.4", - "pg": "8.11.3", - "typeorm": "^0.3.20" - }, - "devDependencies": { - "@subsquid/substrate-metadata-explorer": "^3.1.2", - "@subsquid/substrate-typegen": "^8.0.2", - "@subsquid/typeorm-codegen": "^1.3.3", - "@types/node": "^20.11.17", - "typescript": "^5.3.3" - } -} diff --git a/indexers/rewards-squid/schema.graphql b/indexers/rewards-squid/schema.graphql deleted file mode 100644 index 2d08d4ba8..000000000 --- a/indexers/rewards-squid/schema.graphql +++ /dev/null @@ -1,108 +0,0 @@ -type Account @entity { - "Account address" - id: ID! @index - rewards: [RewardEvent!]! @derivedFrom(field: "account") - nominations: [Nominator!]! @derivedFrom(field: "account") -} - -type DomainEpoch @entity { - id: ID! @index - domainId: Int! @index - epoch: Int! - updatedAt: Int -} - -type Operator @entity { - id: ID! @index - signingKey: String! @index - operatorOwner: String @index - orderingId: Int! @index - currentDomainId: Int - nextDomainId: Int - minimumNominatorStake: BigInt - nominationTax: Int - currentTotalStake: BigInt - currentEpochRewards: BigInt - totalShares: BigInt - nominatorAmount: Int! @index - deposits: [Deposit!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) - nominators: [Nominator!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) - status: String - updatedAt: Int @index - operatorRewards: [OperatorRewardEvent!]! - @derivedFrom(field: "operator") - @cardinality(value: 1000) -} - -type Nominator @entity { - id: ID! @index - operator: Operator! - account: Account! - shares: BigInt - status: String! - updatedAt: Int -} - -type OperatorRewardEvent @entity { - id: ID! @index - operator: Operator! - indexInBlock: Int! - name: String! - timestamp: DateTime! @index - blockNumber: Int! @index - extrinsicHash: String @index - amount: BigInt! -} - -type RewardEvent @entity { - id: ID! @index - indexInBlock: Int! - name: String! - timestamp: DateTime! @index - blockNumber: Int! @index - extrinsicHash: String @index - account: Account! - amount: BigInt -} - -type AccountReward @entity { - id: ID! @index - account: Account! - totalRewards: BigInt - block: BigInt - vote: BigInt - operator: BigInt - updatedAt: Int! @index -} - -type OperatorReward @entity { - id: ID! @index - amount: BigInt - updatedAt: Int! -} - -type Deposit @entity { - id: ID! @index - blockNumber: Int! @index - amount: BigInt - operator: Operator! - nominator: Nominator! - nominatorAccount: String! - timestamp: DateTime! @index - extrinsicHash: String @index -} - -type OperatorUnlockedFunds @entity { - id: ID! @index - blockNumber: Int! @index - operator: Operator! - nominator: Nominator! - nominatorAccount: String! - timestamp: DateTime! @index - extrinsicHash: String @index - amount: BigInt -} diff --git a/indexers/rewards-squid/scripts/docker-run.sh b/indexers/rewards-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/rewards-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/rewards-squid/scripts/install-sqd.sh b/indexers/rewards-squid/scripts/install-sqd.sh deleted file mode 100644 index 91c869fb7..000000000 --- a/indexers/rewards-squid/scripts/install-sqd.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/bash - -set -e - -if ! command -v sqd &> /dev/null; then - echo "sqd is required but not installed. Proceeding with the rest of the script..." -else - NODE_VERSION=20.11.1 - - mkdir -p ~/{opt,src,bin} - cd ~/src - wget -S https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz - tar xvf node-v${NODE_VERSION}-linux-x64.tar.xz -C ~/opt - - cd ~/bin - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/node node - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npm npm - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/npx npx - - npm i -g @subsquid/cli@latest - - ln -s ~/opt/node-v${NODE_VERSION}-linux-x64/bin/sqd sqd - - echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile - echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bash_profile - - cd ~/ - git clone https://github.com/autonomys/astral.git - - ln -s astral/rewards-squid rewards-squid - - cd rewards-squid - npm ci - sqd up - sqd build - cp -rf .env.sample .env - export NODE_OPTIONS="--max-old-space-size=4096" - nohup sqd run -f .env . & -fi diff --git a/indexers/rewards-squid/scripts/sub-client.js b/indexers/rewards-squid/scripts/sub-client.js deleted file mode 100644 index a9fdfbc31..000000000 --- a/indexers/rewards-squid/scripts/sub-client.js +++ /dev/null @@ -1,37 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - operators(limit: 5, orderBy: updatedAt_DESC) { - id - signingKey - operatorOwner - } - } - `, - }, - { - next: (data) => { - console.log(`New operators: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/rewards-squid/squid.yaml b/indexers/rewards-squid/squid.yaml deleted file mode 100644 index 1fe1fd8a5..000000000 --- a/indexers/rewards-squid/squid.yaml +++ /dev/null @@ -1,18 +0,0 @@ -manifestVersion: subsquid.io/v0.1 -name: rewards-squid -version: 1 -description: Substrate squid template -build: -deploy: - addons: - postgres: - processor: - cmd: - - sqd - - process:prod - env: - RPC_ENDPOINT: ${{ secrets.RPC_ENDPOINT }} - api: - cmd: - - sqd - - serve:prod diff --git a/indexers/rewards-squid/src/blocks/constants.ts b/indexers/rewards-squid/src/blocks/constants.ts deleted file mode 100644 index 0c3db7faa..000000000 --- a/indexers/rewards-squid/src/blocks/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const CONFIG = { - prefix: 2254, -}; - -export const PREFIX = 2254; - -export const TYPES = { - Solution: { - public_key: "AccountId32", - reward_address: "AccountId32", - }, - SubPreDigest: { - slot: "u64", - solution: "Solution", - }, -}; diff --git a/indexers/rewards-squid/src/blocks/utils.ts b/indexers/rewards-squid/src/blocks/utils.ts deleted file mode 100644 index 46e510504..000000000 --- a/indexers/rewards-squid/src/blocks/utils.ts +++ /dev/null @@ -1,434 +0,0 @@ -import { StoreWithCache } from "@belopash/typeorm-store"; -import * as ss58 from "@subsquid/ss58"; -import { randomUUID } from "crypto"; -import { - Account, - AccountReward, - Deposit, - DomainEpoch, - Nominator, - Operator, - OperatorReward, - OperatorRewardEvent, - OperatorUnlockedFunds, - RewardEvent, -} from "../model"; -import { Block, BlockHeader, Event, ProcessorContext } from "../processor"; -import { events } from "../types"; -import { domains } from "../types/storage"; -import { CONFIG } from "./constants"; - -/** - * - * @param id - * @returns substrate account address properly encoded - */ -export function encodeId(id: Uint8Array | string) { - if (id === "") return ""; - return ss58.codec(CONFIG.prefix).encode(id); -} - -/** - * - * @param ctx - * @param api - * @returns - */ -export async function getOrCreateOperator( - ctx: ProcessorContext, - header: BlockHeader, - operatorId: bigint -): Promise { - let operator = await ctx.store.get(Operator, operatorId.toString()); - - if (!operator) { - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - - const nominatorsLength = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - const ownerAccount = await domains.operatorIdOwner.v0.get( - header, - operatorId - ); - - const encodedOwnerAccount = ownerAccount ? encodeId(ownerAccount) : ""; - - if (operatorInfo) { - operator = new Operator({ - id: operatorId.toString(), - orderingId: Number(operatorId), - operatorOwner: encodedOwnerAccount, - status: JSON.stringify(operatorInfo.status), - signingKey: operatorInfo.signingKey, - totalShares: operatorInfo.currentTotalShares, - currentEpochRewards: operatorInfo.currentEpochRewards, - currentTotalStake: operatorInfo.currentTotalStake, - nominatorAmount: nominatorsLength || 0, - nominationTax: operatorInfo.nominationTax, - minimumNominatorStake: operatorInfo.minimumNominatorStake, - nextDomainId: operatorInfo.nextDomainId, - currentDomainId: operatorInfo.currentDomainId, - updatedAt: header.height, - }); - - await ctx.store.insert(operator); - } - } - - return operator; -} - -export async function getOrCreateNominator( - ctx: ProcessorContext, - header: BlockHeader, - operatorId: bigint, - nominatorId: string -): Promise { - const operatorIdStr = operatorId.toString(); - const encodedNominatorId = encodeId(nominatorId); - const operator = await getOrCreateOperator(ctx, header, operatorId); - - let nominator = await ctx.store.get( - Nominator, - `${operatorIdStr}-${encodedNominatorId}` - ); - - if (!nominator) { - const nominatorInfo = await domains.deposits.v1.get( - header, - operatorId, - nominatorId - ); - - const account = await getOrCreateAccount(ctx, nominatorId); - - nominator = new Nominator({ - id: `${operatorIdStr}-${encodedNominatorId}`, - operator: operator, - account: account, - shares: BigInt(nominatorInfo?.known.shares || 0), - status: "Registered", - updatedAt: header.height, - }); - - await ctx.store.insert(nominator); - } - - return nominator; -} - -export async function getOrCreateAccount( - ctx: ProcessorContext, - accountId: string -): Promise { - const encodedAccountId = encodeId(accountId); - let account = await ctx.store.get(Account, encodedAccountId); - - if (!account) { - account = new Account({ - id: encodedAccountId, - }); - - await ctx.store.insert(account); - } - - return account; -} - -export async function updateOperatorStatus( - ctx: ProcessorContext, - operatorId: bigint, - header: BlockHeader -) { - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominatorCount = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.currentDomainId = operatorInfo.currentDomainId; - operator.nominatorAmount = nominatorCount - ? nominatorCount - : operator.nominatorAmount; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.nextDomainId = operatorInfo.nextDomainId; - operator.currentEpochRewards = operatorInfo.currentEpochRewards; - operator.status = JSON.stringify(operatorInfo.status); - operator.updatedAt = header.height; - await ctx.store.save(operator); - } -} - -export async function updateOperatorStakes( - ctx: ProcessorContext, - operatorId: bigint, - header: BlockHeader -) { - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominatorsLength = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.nominatorAmount = nominatorsLength - ? nominatorsLength - : operator.nominatorAmount; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.updatedAt = header.height; - await ctx.store.save(operator); - } -} - -export async function updateOperatorRewards( - ctx: ProcessorContext, - block: Block, - event: Event -) { - const operatorEvents: OperatorRewardEvent[] = []; - - const { operatorId, reward } = - events.domains.operatorRewarded.v0.decode(event); - - const operator = await ctx.store.get(Operator, operatorId.toString()); - - if (operator) { - const operatorReward = new OperatorRewardEvent({ - id: event.id, - indexInBlock: event.index, - name: event.name, - timestamp: new Date(block.header.timestamp || 0), - blockNumber: block.header.height, - extrinsicHash: event.extrinsic?.hash, - amount: reward, - operator: operator, - }); - - operatorEvents.push(operatorReward); - } - - return operatorEvents; -} - -export async function updateEpochCompleted(header: BlockHeader, event: Event) { - const { domainId, completedEpochIndex } = - events.domains.domainEpochCompleted.v0.decode(event); - - const domainEpoch = new DomainEpoch({ - id: randomUUID(), - domainId: domainId, - epoch: completedEpochIndex, - updatedAt: header.height, - }); - - return domainEpoch; -} - -export async function updateOperatorStake( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId, amount } = - events.domains.storageFeeDeposited.v1.decode(event); - - const nominator = await getOrCreateNominator( - ctx, - header, - operatorId, - nominatorId - ); - - const deposit = new Deposit({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - amount: amount, - operator: nominator.operator, - nominator: nominator, - nominatorAccount: encodeId(event.args?.nominatorId), - }); - - if (deposit) { - await ctx.store.save(deposit); - } -} - -export async function updateWithdrewStake( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId } = - events.domains.withdrewStake.v0.decode(event); - - const encodedNominatorId = encodeId(nominatorId); - - const operator = await ctx.store.get(Operator, operatorId.toString()); - let operatorInfo; - - if (domains.operators.v0.is(header)) { - operatorInfo = await domains.operators.v0.get(header, operatorId); - } else if (domains.operators.v1.is(header)) { - operatorInfo = await domains.operators.v1.get(header, operatorId); - } else if (domains.operators.v3.is(header)) { - operatorInfo = await domains.operators.v3.get(header, operatorId); - } - const nominator = await ctx.store.get( - Nominator, - `${operatorId}-${encodedNominatorId}` - ); - const nominatorCount = await domains.nominatorCount.v0.get( - header, - operatorId - ); - - if (operator && operatorInfo) { - operator.nominatorAmount = nominatorCount ? nominatorCount : 0; - operator.currentTotalStake = operatorInfo.currentTotalStake; - operator.totalShares = operatorInfo.currentTotalShares; - operator.currentEpochRewards = operatorInfo.currentEpochRewards; - operator.status = JSON.stringify(operatorInfo.status); - operator.updatedAt = header.height; - - await ctx.store.save(operator); - } - - if (operator && nominator) { - const newNominator = new Nominator({ - ...nominator, - status: "Stake Withdrawn", - updatedAt: header.height, - }); - await ctx.store.save(newNominator); - } -} - -export async function processRewardEvent( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const address = event.args?.voter || event.args?.blockAuthor; - - const account = await getOrCreateAccount(ctx, address); - - const reward = BigInt(event.args.reward); - - const rewardEvent = new RewardEvent({ - id: event.id, - indexInBlock: event.index, - name: event.name, - account, - timestamp: new Date(header.timestamp || 0), - blockNumber: header.height, - extrinsicHash: event.extrinsic?.hash, - amount: reward, - }); - - return rewardEvent; -} - -export async function getOrCreateAccountRewards( - ctx: ProcessorContext, - header: BlockHeader, - account: Account -): Promise { - let accountReward = await ctx.store.get(AccountReward, account.id); - - if (!accountReward) { - accountReward = new AccountReward({ - id: account.id, - account: account, - vote: BigInt(0), - block: BigInt(0), - operator: BigInt(0), - totalRewards: BigInt(0), - updatedAt: header.height, - }); - } - - return accountReward; -} - -export async function getOrCreateOperatorRewards( - ctx: ProcessorContext, - header: BlockHeader, - operator: Operator -): Promise { - let operatorReward = await ctx.store.get(OperatorReward, operator.id); - - if (!operatorReward) { - operatorReward = new OperatorReward({ - id: operator.id, - amount: BigInt(0), - updatedAt: header.height, - }); - } - - return operatorReward; -} - -export async function updateOperatorFundsUnlocked( - ctx: ProcessorContext, - header: BlockHeader, - event: Event -) { - const { operatorId, nominatorId, amount } = - events.domains.fundsUnlocked.v0.decode(event); - - const nominator = await getOrCreateNominator( - ctx, - header, - operatorId, - nominatorId - ); - - const unlockedFund = new OperatorUnlockedFunds({ - id: event.id, - blockNumber: header.height, - timestamp: new Date(header.timestamp || 0), - extrinsicHash: event.extrinsic?.hash, - nominatorAccount: encodeId(event.args?.nominatorId), - amount: amount, - operator: nominator.operator, - nominator: nominator, - }); - - if (unlockedFund) { - await ctx.store.save(unlockedFund); - } -} diff --git a/indexers/rewards-squid/src/config.ts b/indexers/rewards-squid/src/config.ts deleted file mode 100644 index 574631943..000000000 --- a/indexers/rewards-squid/src/config.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const PROCESSOR_CONFIG = { - chainName: "gemini-3g", - prefix: 2254, - dataSource: { - chain: process.env.CHAIN_RPC_ENDPOINT as string, - }, - typesBundle: "gemini-3g", -}; diff --git a/indexers/rewards-squid/src/main.ts b/indexers/rewards-squid/src/main.ts deleted file mode 100644 index 34554e21e..000000000 --- a/indexers/rewards-squid/src/main.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - StoreWithCache, - TypeormDatabaseWithCache, -} from "@belopash/typeorm-store"; -import { - getOrCreateOperator, - processRewardEvent, - updateEpochCompleted, - updateOperatorFundsUnlocked, - updateOperatorRewards, - updateOperatorStake, - updateOperatorStatus, - updateWithdrewStake, -} from "./blocks/utils"; -import { DomainEpoch, OperatorRewardEvent, RewardEvent } from "./model"; -import { ProcessorContext, processor } from "./processor"; -import { events } from "./types"; - -processor.run( - new TypeormDatabaseWithCache({ supportHotBlocks: true }), - async (ctx) => { - let rewards = await getOperatorEvents(ctx); - - await ctx.store.save([...rewards.operatorEvents]); - await ctx.store.save([...rewards.rewardEvents]); - await ctx.store.save([...rewards.domainEpochEvents]); - } -); - -type Rewards = { - rewardEvents: RewardEvent[]; - operatorEvents: OperatorRewardEvent[]; - domainEpochEvents: DomainEpoch[]; -}; - -async function getOperatorEvents( - ctx: ProcessorContext -): Promise { - const rewardEvents: RewardEvent[] = []; - const operatorEvents: OperatorRewardEvent[] = []; - const domainEpochEvents: DomainEpoch[] = []; - - for (let block of ctx.blocks) { - for (let event of block.events) { - switch (event.name) { - case events.domains.domainEpochCompleted.name: - const domainEpochEvent = await updateEpochCompleted( - block.header, - event - ); - domainEpochEvents.push(domainEpochEvent); - break; - case events.domains.operatorRegistered.name: - const rec = events.domains.operatorRegistered.v0.decode(event); - await getOrCreateOperator(ctx, block.header, rec.operatorId); - break; - case events.domains.operatorDeregistered.name: - const operatorDeregistered = - events.domains.operatorDeregistered.v0.decode(event); - await updateOperatorStatus( - ctx, - operatorDeregistered.operatorId, - block.header - ); - break; - case events.domains.operatorSlashed.name: - const operatorSlashed = - events.domains.operatorSlashed.v0.decode(event); - await updateOperatorStatus( - ctx, - operatorSlashed.operatorId, - block.header - ); - break; - case events.domains.storageFeeDeposited.name: - await updateOperatorStake(ctx, block.header, event); - break; - case events.domains.withdrewStake.name: - await updateWithdrewStake(ctx, block.header, event); - break; - case events.domains.operatorRewarded.name: - const operatorRewardEvents = await updateOperatorRewards( - ctx, - block, - event - ); - operatorEvents.push(...operatorRewardEvents); - break; - case events.domains.fundsUnlocked.name: - await updateOperatorFundsUnlocked(ctx, block.header, event); - break; - case events.rewards.blockReward.name: - case events.rewards.voteReward.name: - const rewardEvent = await processRewardEvent( - ctx, - block.header, - event - ); - rewardEvents.push(rewardEvent); - break; - default: - break; - } - } - } - - return { rewardEvents, operatorEvents, domainEpochEvents }; -} diff --git a/indexers/rewards-squid/src/model/generated/account.model.ts b/indexers/rewards-squid/src/model/generated/account.model.ts deleted file mode 100644 index a01de3deb..000000000 --- a/indexers/rewards-squid/src/model/generated/account.model.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, OneToMany as OneToMany_} from "typeorm" -import {RewardEvent} from "./rewardEvent.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class Account { - constructor(props?: Partial) { - Object.assign(this, props) - } - - /** - * Account address - */ - @PrimaryColumn_() - id!: string - - @OneToMany_(() => RewardEvent, e => e.account) - rewards!: RewardEvent[] - - @OneToMany_(() => Nominator, e => e.account) - nominations!: Nominator[] -} diff --git a/indexers/rewards-squid/src/model/generated/accountReward.model.ts b/indexers/rewards-squid/src/model/generated/accountReward.model.ts deleted file mode 100644 index e4a16c269..000000000 --- a/indexers/rewards-squid/src/model/generated/accountReward.model.ts +++ /dev/null @@ -1,33 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class AccountReward { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - totalRewards!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - block!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - vote!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - operator!: bigint | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - updatedAt!: number -} diff --git a/indexers/rewards-squid/src/model/generated/deposit.model.ts b/indexers/rewards-squid/src/model/generated/deposit.model.ts deleted file mode 100644 index ac69b3ff2..000000000 --- a/indexers/rewards-squid/src/model/generated/deposit.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class Deposit { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Nominator, {nullable: true}) - nominator!: Nominator - - @Column_("text", {nullable: false}) - nominatorAccount!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts b/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts deleted file mode 100644 index a6912eb2b..000000000 --- a/indexers/rewards-squid/src/model/generated/domainEpoch.model.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_} from "typeorm" - -@Entity_() -export class DomainEpoch { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - domainId!: number - - @Column_("int4", {nullable: false}) - epoch!: number - - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/index.ts b/indexers/rewards-squid/src/model/generated/index.ts deleted file mode 100644 index d7bd55654..000000000 --- a/indexers/rewards-squid/src/model/generated/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./account.model" -export * from "./domainEpoch.model" -export * from "./operator.model" -export * from "./nominator.model" -export * from "./operatorRewardEvent.model" -export * from "./rewardEvent.model" -export * from "./accountReward.model" -export * from "./operatorReward.model" -export * from "./deposit.model" -export * from "./operatorUnlockedFunds.model" diff --git a/indexers/rewards-squid/src/model/generated/marshal.ts b/indexers/rewards-squid/src/model/generated/marshal.ts deleted file mode 100644 index eaf8d36a8..000000000 --- a/indexers/rewards-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,179 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export const bigintTransformer = { - to(x?: bigint) { - return x?.toString() - }, - from(s?: string): bigint | undefined { - return s == null ? undefined : BigInt(s) - } -} - - -export const floatTransformer = { - to(x?: number) { - return x?.toString() - }, - from(s?: string): number | undefined { - return s == null ? undefined : Number(s) - } -} - - -export const bigdecimalTransformer = { - to(x?: any) { - return x?.toString() - }, - from(s?: any): any | undefined { - return s == null ? undefined : decimal.BigDecimal(s) - } -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/rewards-squid/src/model/generated/nominator.model.ts b/indexers/rewards-squid/src/model/generated/nominator.model.ts deleted file mode 100644 index b539d0bfc..000000000 --- a/indexers/rewards-squid/src/model/generated/nominator.model.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Account} from "./account.model" - -@Entity_() -export class Nominator { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - shares!: bigint | undefined | null - - @Column_("text", {nullable: false}) - status!: string - - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/operator.model.ts b/indexers/rewards-squid/src/model/generated/operator.model.ts deleted file mode 100644 index a97953f53..000000000 --- a/indexers/rewards-squid/src/model/generated/operator.model.ts +++ /dev/null @@ -1,68 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, OneToMany as OneToMany_} from "typeorm" -import * as marshal from "./marshal" -import {Deposit} from "./deposit.model" -import {Nominator} from "./nominator.model" -import {OperatorRewardEvent} from "./operatorRewardEvent.model" - -@Entity_() -export class Operator { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("text", {nullable: false}) - signingKey!: string - - @Index_() - @Column_("text", {nullable: true}) - operatorOwner!: string | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - orderingId!: number - - @Column_("int4", {nullable: true}) - currentDomainId!: number | undefined | null - - @Column_("int4", {nullable: true}) - nextDomainId!: number | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - minimumNominatorStake!: bigint | undefined | null - - @Column_("int4", {nullable: true}) - nominationTax!: number | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - currentTotalStake!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - currentEpochRewards!: bigint | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - totalShares!: bigint | undefined | null - - @Index_() - @Column_("int4", {nullable: false}) - nominatorAmount!: number - - @OneToMany_(() => Deposit, e => e.operator) - deposits!: Deposit[] - - @OneToMany_(() => Nominator, e => e.operator) - nominators!: Nominator[] - - @Column_("text", {nullable: true}) - status!: string | undefined | null - - @Index_() - @Column_("int4", {nullable: true}) - updatedAt!: number | undefined | null - - @OneToMany_(() => OperatorRewardEvent, e => e.operator) - operatorRewards!: OperatorRewardEvent[] -} diff --git a/indexers/rewards-squid/src/model/generated/operatorReward.model.ts b/indexers/rewards-squid/src/model/generated/operatorReward.model.ts deleted file mode 100644 index 8513effc5..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorReward.model.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_} from "typeorm" -import * as marshal from "./marshal" - -@Entity_() -export class OperatorReward { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null - - @Column_("int4", {nullable: false}) - updatedAt!: number -} diff --git a/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts b/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts deleted file mode 100644 index faf273f2a..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorRewardEvent.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, ManyToOne as ManyToOne_, Index as Index_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" - -@Entity_() -export class OperatorRewardEvent { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Column_("int4", {nullable: false}) - indexInBlock!: number - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: false}) - amount!: bigint -} diff --git a/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts b/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts deleted file mode 100644 index 833c1dc68..000000000 --- a/indexers/rewards-squid/src/model/generated/operatorUnlockedFunds.model.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Operator} from "./operator.model" -import {Nominator} from "./nominator.model" - -@Entity_() -export class OperatorUnlockedFunds { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @ManyToOne_(() => Operator, {nullable: true}) - operator!: Operator - - @Index_() - @ManyToOne_(() => Nominator, {nullable: true}) - nominator!: Nominator - - @Column_("text", {nullable: false}) - nominatorAccount!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null -} diff --git a/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts b/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts deleted file mode 100644 index 83a1a1e7f..000000000 --- a/indexers/rewards-squid/src/model/generated/rewardEvent.model.ts +++ /dev/null @@ -1,38 +0,0 @@ -import {Entity as Entity_, Column as Column_, PrimaryColumn as PrimaryColumn_, Index as Index_, ManyToOne as ManyToOne_} from "typeorm" -import * as marshal from "./marshal" -import {Account} from "./account.model" - -@Entity_() -export class RewardEvent { - constructor(props?: Partial) { - Object.assign(this, props) - } - - @PrimaryColumn_() - id!: string - - @Column_("int4", {nullable: false}) - indexInBlock!: number - - @Column_("text", {nullable: false}) - name!: string - - @Index_() - @Column_("timestamp with time zone", {nullable: false}) - timestamp!: Date - - @Index_() - @Column_("int4", {nullable: false}) - blockNumber!: number - - @Index_() - @Column_("text", {nullable: true}) - extrinsicHash!: string | undefined | null - - @Index_() - @ManyToOne_(() => Account, {nullable: true}) - account!: Account - - @Column_("numeric", {transformer: marshal.bigintTransformer, nullable: true}) - amount!: bigint | undefined | null -} diff --git a/indexers/rewards-squid/src/model/index.ts b/indexers/rewards-squid/src/model/index.ts deleted file mode 100644 index 73bfb2881..000000000 --- a/indexers/rewards-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./generated" diff --git a/indexers/rewards-squid/src/processor.ts b/indexers/rewards-squid/src/processor.ts deleted file mode 100644 index 3538f8303..000000000 --- a/indexers/rewards-squid/src/processor.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { - DataHandlerContext, - SubstrateBatchProcessor, - SubstrateBatchProcessorFields, - Block as _Block, - BlockHeader as _BlockHeader, - Call as _Call, - Event as _Event, - Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; - -import { events } from "./types"; - -export const processor = new SubstrateBatchProcessor() - .setRpcEndpoint({ - url: assertNotNull(process.env.RPC_ENDPOINT), - rateLimit: 10, - }) - .setBlockRange({ from: 0 }) - .addEvent({ - name: [ - events.domains.storageFeeDeposited.name, - events.domains.operatorRegistered.name, - events.domains.operatorDeregistered.name, - events.domains.operatorNominated.name, - events.domains.operatorRewarded.name, - events.domains.operatorSlashed.name, - events.domains.domainEpochCompleted.name, - events.domains.withdrewStake.name, - events.rewards.blockReward.name, - events.rewards.voteReward.name, - ], - extrinsic: true, - }) - .setFields({ - event: { - args: true, - }, - extrinsic: { - hash: true, - fee: true, - }, - block: { - timestamp: true, - }, - }); -// Uncomment to disable RPC ingestion and drastically reduce no of RPC calls -//.useArchiveOnly() - -export type Fields = SubstrateBatchProcessorFields; -export type BlockHeader = _BlockHeader; -export type Block = _Block; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; diff --git a/indexers/rewards-squid/src/types/balances/calls.ts b/indexers/rewards-squid/src/types/balances/calls.ts deleted file mode 100644 index 906f6aa15..000000000 --- a/indexers/rewards-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,100 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/balances/constants.ts b/indexers/rewards-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/rewards-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/balances/events.ts b/indexers/rewards-squid/src/types/balances/events.ts deleted file mode 100644 index da33447db..000000000 --- a/indexers/rewards-squid/src/types/balances/events.ts +++ /dev/null @@ -1,298 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/balances/storage.ts b/indexers/rewards-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/rewards-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/calls.ts b/indexers/rewards-squid/src/types/calls.ts deleted file mode 100644 index 335b561a0..000000000 --- a/indexers/rewards-squid/src/types/calls.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as domains from './domains/calls' -export * as messenger from './messenger/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/rewards-squid/src/types/constants.ts b/indexers/rewards-squid/src/types/constants.ts deleted file mode 100644 index fbf29a235..000000000 --- a/indexers/rewards-squid/src/types/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as domains from './domains/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/rewards-squid/src/types/domains/calls.ts b/indexers/rewards-squid/src/types/domains/calls.ts deleted file mode 100644 index 9c96646e2..000000000 --- a/indexers/rewards-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,221 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/domains/constants.ts b/indexers/rewards-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/rewards-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/domains/events.ts b/indexers/rewards-squid/src/types/domains/events.ts deleted file mode 100644 index 0974cf477..000000000 --- a/indexers/rewards-squid/src/types/domains/events.ts +++ /dev/null @@ -1,235 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/domains/storage.ts b/indexers/rewards-squid/src/types/domains/storage.ts deleted file mode 100644 index 0fbb2fa84..000000000 --- a/indexers/rewards-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1040 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/events.ts b/indexers/rewards-squid/src/types/events.ts deleted file mode 100644 index c47940ee4..000000000 --- a/indexers/rewards-squid/src/types/events.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as domains from './domains/events' -export * as messenger from './messenger/events' diff --git a/indexers/rewards-squid/src/types/index.ts b/indexers/rewards-squid/src/types/index.ts deleted file mode 100644 index 5b659ac4a..000000000 --- a/indexers/rewards-squid/src/types/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as v0 from './v0' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/rewards-squid/src/types/messenger/calls.ts b/indexers/rewards-squid/src/types/messenger/calls.ts deleted file mode 100644 index 748fc2ae0..000000000 --- a/indexers/rewards-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,115 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/constants.ts b/indexers/rewards-squid/src/types/messenger/constants.ts deleted file mode 100644 index e50ab0673..000000000 --- a/indexers/rewards-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/events.ts b/indexers/rewards-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/rewards-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/messenger/storage.ts b/indexers/rewards-squid/src/types/messenger/storage.ts deleted file mode 100644 index b1dbfcf28..000000000 --- a/indexers/rewards-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,316 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} diff --git a/indexers/rewards-squid/src/types/rewards/calls.ts b/indexers/rewards-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/rewards-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/constants.ts b/indexers/rewards-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/rewards-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/events.ts b/indexers/rewards-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/rewards-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/rewards-squid/src/types/rewards/storage.ts b/indexers/rewards-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/rewards-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/rewards-squid/src/types/storage.ts b/indexers/rewards-squid/src/types/storage.ts deleted file mode 100644 index 05b132f59..000000000 --- a/indexers/rewards-squid/src/types/storage.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as domains from './domains/storage' -export * as messenger from './messenger/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/rewards-squid/src/types/subspace/calls.ts b/indexers/rewards-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/rewards-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/constants.ts b/indexers/rewards-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/rewards-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/events.ts b/indexers/rewards-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/rewards-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/rewards-squid/src/types/subspace/storage.ts b/indexers/rewards-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/rewards-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/rewards-squid/src/types/support.ts b/indexers/rewards-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/rewards-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/rewards-squid/src/types/v0.ts b/indexers/rewards-squid/src/types/v0.ts deleted file mode 100644 index 6ca1f3af7..000000000 --- a/indexers/rewards-squid/src/types/v0.ts +++ /dev/null @@ -1,1960 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const HistorySize = sts.bigint() - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export type AccountId32 = Bytes - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} diff --git a/indexers/rewards-squid/src/types/v1.ts b/indexers/rewards-squid/src/types/v1.ts deleted file mode 100644 index c262a2b95..000000000 --- a/indexers/rewards-squid/src/types/v1.ts +++ /dev/null @@ -1,953 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/rewards-squid/src/types/v3.ts b/indexers/rewards-squid/src/types/v3.ts deleted file mode 100644 index 8e3a329dc..000000000 --- a/indexers/rewards-squid/src/types/v3.ts +++ /dev/null @@ -1,434 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} diff --git a/indexers/rewards-squid/tsconfig.json b/indexers/rewards-squid/tsconfig.json deleted file mode 100644 index f1f63d568..000000000 --- a/indexers/rewards-squid/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es2020", - "outDir": "lib", - "rootDir": "src", - "strict": true, - "declaration": false, - "sourceMap": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "skipLibCheck": true - }, - "include": ["src"], - "exclude": [ - "node_modules" - ] -} diff --git a/indexers/rewards-squid/typegen.json b/indexers/rewards-squid/typegen.json deleted file mode 100644 index f84febe86..000000000 --- a/indexers/rewards-squid/typegen.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "outDir": "src/types", - "specVersions": "gemini3h.jsonl", - "pallets": { - "Balances": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Domains": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Rewards": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Messenger": { - "events": true, - "calls": true, - "storage": true, - "constants": true - }, - "Subspace": { - "events": true, - "calls": true, - "storage": true, - "constants": true - } - } -} diff --git a/indexers/staking-squid/db/migrations/1724178035744-Data.js b/indexers/staking-squid/db/migrations/1724178035744-Data.js new file mode 100644 index 000000000..c686cab45 --- /dev/null +++ b/indexers/staking-squid/db/migrations/1724178035744-Data.js @@ -0,0 +1,269 @@ +module.exports = class Data1724178035744 { + name = 'Data1724178035744' + + async up(db) { + await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_c1e90b3654ffe0a5544e502edb" ON "domain" ("sort_id") `) + await db.query(`CREATE INDEX "IDX_c117722589b2b0f927aa16e25f" ON "domain" ("account_id") `) + await db.query(`CREATE INDEX "IDX_26a07113f90df161f919c7d5a6" ON "domain" ("name") `) + await db.query(`CREATE INDEX "IDX_36bfbe927612b8c0712c25f5a0" ON "domain" ("runtime_id") `) + await db.query(`CREATE INDEX "IDX_9f96c312a490b7a2a3d017721e" ON "domain" ("runtime") `) + await db.query(`CREATE INDEX "IDX_80867983eb3f6e204acfea4214" ON "domain" ("completed_epoch") `) + await db.query(`CREATE INDEX "IDX_e3a1b94f40001682587d9b0a3d" ON "domain" ("last_domain_block_number") `) + await db.query(`CREATE INDEX "IDX_6da91e378c5e17e2d467b592b0" ON "domain" ("total_volume") `) + await db.query(`CREATE INDEX "IDX_35b49bec8ab1e3864de09a60d6" ON "domain" ("created_at") `) + await db.query(`CREATE INDEX "IDX_c3ac554ab7a2ed97d9a0af4083" ON "domain" ("updated_at") `) + await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) + await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "signing_key" text NOT NULL, "minimum_nominator_stake" numeric NOT NULL, "nomination_tax" integer NOT NULL, "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "banner" text NOT NULL, "website" text NOT NULL, "website_verified" boolean NOT NULL, "email" text NOT NULL, "email_verified" boolean NOT NULL, "discord" text NOT NULL, "github" text NOT NULL, "twitter" text NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_epoch_rewards" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "raw_status" text NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "bundle_count" integer NOT NULL, "status" character varying(12) NOT NULL, "pending_action" character varying(27) NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_ed3a1bcef6df98998f07a571a7" ON "operator" ("sort_id") `) + await db.query(`CREATE INDEX "IDX_91b197ab29ad85b5e616289ea0" ON "operator" ("account_id") `) + await db.query(`CREATE INDEX "IDX_1c800426a1f738c1b202ff839f" ON "operator" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) + await db.query(`CREATE INDEX "IDX_b383ed84b5891bd42be1d2eefd" ON "operator" ("name") `) + await db.query(`CREATE INDEX "IDX_df2e0bb74daa727ab46b3292b0" ON "operator" ("total_volume") `) + await db.query(`CREATE INDEX "IDX_c7fd0bf382a9832cf1db87827c" ON "operator" ("status") `) + await db.query(`CREATE INDEX "IDX_987b325e3ab4045266b612b032" ON "operator" ("pending_action") `) + await db.query(`CREATE INDEX "IDX_d6260ed02d20cf8231ebb742d6" ON "operator" ("created_at") `) + await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) + await db.query(`CREATE TABLE "domain_block" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "block_number" integer NOT NULL, "block_hash" text NOT NULL, "extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_80e382ab071c0035308c3bbe269" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_4d9cd1246ac5e4eb3d87032a95" ON "domain_block" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_2c2a6c4f46c2585759e410aca8" ON "domain_block" ("domain_epoch_id") `) + await db.query(`CREATE INDEX "IDX_f20da90e65426e4f794f848b81" ON "domain_block" ("block_number") `) + await db.query(`CREATE INDEX "IDX_cc1b0fc775b917ea6223b8602e" ON "domain_block" ("block_hash") `) + await db.query(`CREATE INDEX "IDX_eb1b10f35bffbce1185f4ac3f3" ON "domain_block" ("epoch") `) + await db.query(`CREATE INDEX "IDX_162c14bd69f437bed7e4f71bd8" ON "domain_block" ("consensus_block_number") `) + await db.query(`CREATE INDEX "IDX_43ace0c9890ef82e3eb90fe405" ON "domain_block" ("consensus_block_hash") `) + await db.query(`CREATE INDEX "IDX_a884257019c36496b853d50d3c" ON "domain_block" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_64aebba834dae120aead88ff33" ON "domain_block" ("created_at") `) + await db.query(`CREATE INDEX "IDX_d53bbe077c18c36b918abc40ff" ON "domain_block" ("updated_at") `) + await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "epoch" integer NOT NULL, "domain_id" text NOT NULL, "block_number_start" integer NOT NULL, "block_number_end" integer NOT NULL, "block_count" integer NOT NULL, "timestamp_start" TIMESTAMP WITH TIME ZONE NOT NULL, "timestamp_end" TIMESTAMP WITH TIME ZONE NOT NULL, "epoch_duration" numeric NOT NULL, "consensus_block_number_start" integer NOT NULL, "consensus_block_number_end" integer NOT NULL, "consensus_block_hash_start" text NOT NULL, "consensus_block_hash_end" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_333f88cae9e28d581d763fcd3a" ON "domain_epoch" ("epoch") `) + await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_feacf6e5472e742480e182fead" ON "domain_epoch" ("block_number_start") `) + await db.query(`CREATE INDEX "IDX_d2800b9e4f55e70c2dbf50c180" ON "domain_epoch" ("block_number_end") `) + await db.query(`CREATE INDEX "IDX_4c04931070a2b4b5c86aa12503" ON "domain_epoch" ("timestamp_start") `) + await db.query(`CREATE INDEX "IDX_fef96292239cebf57a521d0264" ON "domain_epoch" ("timestamp_end") `) + await db.query(`CREATE INDEX "IDX_89e03f524980b405de261570bb" ON "domain_epoch" ("consensus_block_number_start") `) + await db.query(`CREATE INDEX "IDX_14aad4eb1f052ff1198ed69aa9" ON "domain_epoch" ("consensus_block_number_end") `) + await db.query(`CREATE INDEX "IDX_dd129bbbbffb90b197efdd59f0" ON "domain_epoch" ("consensus_block_hash_start") `) + await db.query(`CREATE INDEX "IDX_77df3788bfba37edba3a23da00" ON "domain_epoch" ("consensus_block_hash_end") `) + await db.query(`CREATE INDEX "IDX_d047d4eb28fd592bdfc1f398ae" ON "domain_epoch" ("created_at") `) + await db.query(`CREATE INDEX "IDX_bbc9922495360081a8c591b312" ON "domain_epoch" ("updated_at") `) + await db.query(`CREATE TABLE "bundle" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "domain_block_number" integer NOT NULL, "domain_block_hash" text NOT NULL, "domain_block_extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "consensus_storage_fee" numeric NOT NULL, "domain_execution_fee" numeric NOT NULL, "burned_balance" numeric NOT NULL, CONSTRAINT "PK_637e3f87e837d6532109c198dea" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_82b7b684e1b50da245f72d6020" ON "bundle" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_0033c9f116ee25b5ebb8d24222" ON "bundle" ("domain_block_id") `) + await db.query(`CREATE INDEX "IDX_704516bcbc02fe10ce28e8e262" ON "bundle" ("domain_epoch_id") `) + await db.query(`CREATE INDEX "IDX_b5c951f317cc0451d9d3c21aaa" ON "bundle" ("domain_block_number") `) + await db.query(`CREATE INDEX "IDX_006e8a93183443a738f7c5968b" ON "bundle" ("epoch") `) + await db.query(`CREATE INDEX "IDX_5c848822e75fbe863d43231468" ON "bundle" ("consensus_block_number") `) + await db.query(`CREATE INDEX "IDX_33b73ddabaa5e322cff6ab15b1" ON "bundle" ("consensus_block_hash") `) + await db.query(`CREATE INDEX "IDX_e49c7ec4d50ca7652f97f57172" ON "bundle" ("total_volume") `) + await db.query(`CREATE TABLE "bundle_author" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "account_id" text NOT NULL, "operator_id" text NOT NULL, "bundle_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "epoch" integer NOT NULL, CONSTRAINT "PK_54ba310ce65f841f8948c5f230c" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_46a6d0670b490fef23fd56406e" ON "bundle_author" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_e419d11bdca9f6dc30dbb54298" ON "bundle_author" ("account_id") `) + await db.query(`CREATE INDEX "IDX_11c48ad072b8a2f5911a48edf5" ON "bundle_author" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_3ebc9908db2f3e287a5cc279af" ON "bundle_author" ("bundle_id") `) + await db.query(`CREATE INDEX "IDX_912b97c9a90df101e29578a423" ON "bundle_author" ("domain_block_id") `) + await db.query(`CREATE INDEX "IDX_d4e6fbfc88663decb33b8240ad" ON "bundle_author" ("domain_epoch_id") `) + await db.query(`CREATE INDEX "IDX_5b758804adabfdb0f507591dfd" ON "bundle_author" ("epoch") `) + await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "known_shares" numeric NOT NULL, "known_storage_fee_deposit" numeric NOT NULL, "pending_amount" numeric NOT NULL, "pending_storage_fee_deposit" numeric NOT NULL, "pending_effective_domain_epoch" integer NOT NULL, "total_withdrawal_amounts" numeric NOT NULL, "total_storage_fee_refund" numeric NOT NULL, "unlock_at_confirmed_domain_block_number" integer array NOT NULL, "pending_shares" numeric NOT NULL, "pending_storage_fee_refund" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_deposits_count" integer NOT NULL, "total_withdrawals_count" integer NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "status" character varying(8) NOT NULL, "pending_action" character varying(27) NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) + await db.query(`CREATE INDEX "IDX_b017cafe03fa79059bd8164c4e" ON "nominator" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_43aeeb4c46d83dd78aa564c1b1" ON "nominator" ("status") `) + await db.query(`CREATE INDEX "IDX_12baadf2609f7b262a9a760d6d" ON "nominator" ("pending_action") `) + await db.query(`CREATE INDEX "IDX_7093d62ba7e5a6387a686e607e" ON "nominator" ("created_at") `) + await db.query(`CREATE INDEX "IDX_9ebc942736e76bde99ee21452f" ON "nominator" ("updated_at") `) + await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "amount" numeric NOT NULL, "storage_fee_deposit" numeric NOT NULL, "total_amount" numeric NOT NULL, "total_withdrawn" numeric NOT NULL, "status" character varying(19) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text NOT NULL, "epoch_deposited_at" integer NOT NULL, "domain_block_number_deposited_at" integer NOT NULL, "created_at" integer NOT NULL, "staked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_9ced91570695137ec1d60c1a61" ON "deposit" ("account_id") `) + await db.query(`CREATE INDEX "IDX_8dc544cfa89fb544beea034396" ON "deposit" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) + await db.query(`CREATE INDEX "IDX_6f250bd43f2f631fcb2f589200" ON "deposit" ("status") `) + await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) + await db.query(`CREATE INDEX "IDX_09a8447db322b039b8a2bbf858" ON "deposit" ("epoch_deposited_at") `) + await db.query(`CREATE INDEX "IDX_8a397798592cd18d68388c4a58" ON "deposit" ("domain_block_number_deposited_at") `) + await db.query(`CREATE INDEX "IDX_11f6fba4dd0c1e03e2b61b1fd0" ON "deposit" ("created_at") `) + await db.query(`CREATE INDEX "IDX_e2d44319cdd3cfc595fac2ddd0" ON "deposit" ("staked_at") `) + await db.query(`CREATE INDEX "IDX_91527392d40d3066ddadda9804" ON "deposit" ("updated_at") `) + await db.query(`CREATE TABLE "withdrawal" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "shares" numeric NOT NULL, "estimated_amount" numeric NOT NULL, "unlocked_amount" numeric NOT NULL, "unlocked_storage_fee" numeric NOT NULL, "total_amount" numeric NOT NULL, "status" character varying(16) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "withdraw_extrinsic_hash" text NOT NULL, "unlock_extrinsic_hash" text NOT NULL, "epoch_withdrawal_requested_at" integer NOT NULL, "domain_block_number_withdrawal_requested_at" integer NOT NULL, "created_at" integer NOT NULL, "ready_at" integer NOT NULL, "unlocked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_840e247aaad3fbd4e18129122a2" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_66c152572f8743fcd9ddecf2d2" ON "withdrawal" ("account_id") `) + await db.query(`CREATE INDEX "IDX_12de4d5556aa377a203cb5b1b2" ON "withdrawal" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_d5f5ce8abff91d6485c4f84e57" ON "withdrawal" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_09c9cf2ad9a4f3b674540dbfcf" ON "withdrawal" ("nominator_id") `) + await db.query(`CREATE INDEX "IDX_4028ed4e39f5c919fc3317882b" ON "withdrawal" ("status") `) + await db.query(`CREATE INDEX "IDX_e2749aaf8ba367458c360a7c73" ON "withdrawal" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_8fa0aebb91fd2aca95c4d80edb" ON "withdrawal" ("withdraw_extrinsic_hash") `) + await db.query(`CREATE INDEX "IDX_6e92f3b6d03f580800c31d78ea" ON "withdrawal" ("unlock_extrinsic_hash") `) + await db.query(`CREATE INDEX "IDX_8016e5d392912ecc0a425cecec" ON "withdrawal" ("epoch_withdrawal_requested_at") `) + await db.query(`CREATE INDEX "IDX_7207c1052c45aa41c118a01ed0" ON "withdrawal" ("domain_block_number_withdrawal_requested_at") `) + await db.query(`CREATE INDEX "IDX_51ee468e87a9f6eabde5bff0b2" ON "withdrawal" ("created_at") `) + await db.query(`CREATE INDEX "IDX_455defcfd4f47b6358358b77e7" ON "withdrawal" ("ready_at") `) + await db.query(`CREATE INDEX "IDX_803816d11e1df4712ef608af8f" ON "withdrawal" ("unlocked_at") `) + await db.query(`CREATE INDEX "IDX_1e01eb0b8dd1e8a22edc53859c" ON "withdrawal" ("updated_at") `) + await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "amount" numeric NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text NOT NULL, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_c58ade91dd87782e5587dea498" ON "reward_event" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_df32138995e155bfae4999ec17" ON "reward_event" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) + await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) + await db.query(`CREATE TABLE "stats" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "domains_count" integer NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c76e93dfef28ba9b6942f578ab1" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_0b3890ae3ba62ee77fe94af26e" ON "stats" ("block_number") `) + await db.query(`CREATE INDEX "IDX_ea4b2bcf5920a1b06f4454bb91" ON "stats" ("timestamp") `) + await db.query(`CREATE TABLE "stats_per_domain" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_0edbe67267dbe09a2a691517eee" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_3ac1b575a2dd3f64faedbde14b" ON "stats_per_domain" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_77118ccf015e661215115daaa5" ON "stats_per_domain" ("block_number") `) + await db.query(`CREATE INDEX "IDX_8eb7279e3beeab2964a533cd52" ON "stats_per_domain" ("timestamp") `) + await db.query(`CREATE TABLE "stats_per_operator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_8cff6fe09e3e5510f0c90e42cf5" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_4a4bff6af8198a2f145ecf637f" ON "stats_per_operator" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_466db26acddfccae0a5d487d2c" ON "stats_per_operator" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_5ff9cc7e82a620057ef84c3826" ON "stats_per_operator" ("block_number") `) + await db.query(`CREATE INDEX "IDX_3260a5fceb17a3d817e5678d7f" ON "stats_per_operator" ("timestamp") `) + await db.query(`CREATE TABLE "stats_per_nominator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_cbe18fadd4ac8162a3ea72ed7c0" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_1386cedecaa7459304ab08f3c9" ON "stats_per_nominator" ("domain_id") `) + await db.query(`CREATE INDEX "IDX_0cbe32c48b0b8ce4cdaca40e25" ON "stats_per_nominator" ("operator_id") `) + await db.query(`CREATE INDEX "IDX_f4eed0a147ec55fa63fee8cff8" ON "stats_per_nominator" ("nominator_id") `) + await db.query(`CREATE INDEX "IDX_b964a78d6565bfc5d4c2c298c1" ON "stats_per_nominator" ("block_number") `) + await db.query(`CREATE INDEX "IDX_4f0e392290ae255e10b0ff6500" ON "stats_per_nominator" ("timestamp") `) + await db.query(`CREATE TABLE "stats_per_account" ("id" character varying NOT NULL, "account_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c2ae964c132359bab5903ede72f" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_d520535ebd3dceb62332d2dbaa" ON "stats_per_account" ("account_id") `) + await db.query(`CREATE INDEX "IDX_6689c432a28949dd81e6b57671" ON "stats_per_account" ("block_number") `) + await db.query(`CREATE INDEX "IDX_1fdf05c8198889b75485e872bf" ON "stats_per_account" ("timestamp") `) + } + + async down(db) { + await db.query(`DROP TABLE "domain"`) + await db.query(`DROP INDEX "public"."IDX_c1e90b3654ffe0a5544e502edb"`) + await db.query(`DROP INDEX "public"."IDX_c117722589b2b0f927aa16e25f"`) + await db.query(`DROP INDEX "public"."IDX_26a07113f90df161f919c7d5a6"`) + await db.query(`DROP INDEX "public"."IDX_36bfbe927612b8c0712c25f5a0"`) + await db.query(`DROP INDEX "public"."IDX_9f96c312a490b7a2a3d017721e"`) + await db.query(`DROP INDEX "public"."IDX_80867983eb3f6e204acfea4214"`) + await db.query(`DROP INDEX "public"."IDX_e3a1b94f40001682587d9b0a3d"`) + await db.query(`DROP INDEX "public"."IDX_6da91e378c5e17e2d467b592b0"`) + await db.query(`DROP INDEX "public"."IDX_35b49bec8ab1e3864de09a60d6"`) + await db.query(`DROP INDEX "public"."IDX_c3ac554ab7a2ed97d9a0af4083"`) + await db.query(`DROP TABLE "account"`) + await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) + await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) + await db.query(`DROP TABLE "operator"`) + await db.query(`DROP INDEX "public"."IDX_ed3a1bcef6df98998f07a571a7"`) + await db.query(`DROP INDEX "public"."IDX_91b197ab29ad85b5e616289ea0"`) + await db.query(`DROP INDEX "public"."IDX_1c800426a1f738c1b202ff839f"`) + await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) + await db.query(`DROP INDEX "public"."IDX_b383ed84b5891bd42be1d2eefd"`) + await db.query(`DROP INDEX "public"."IDX_df2e0bb74daa727ab46b3292b0"`) + await db.query(`DROP INDEX "public"."IDX_c7fd0bf382a9832cf1db87827c"`) + await db.query(`DROP INDEX "public"."IDX_987b325e3ab4045266b612b032"`) + await db.query(`DROP INDEX "public"."IDX_d6260ed02d20cf8231ebb742d6"`) + await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) + await db.query(`DROP TABLE "domain_block"`) + await db.query(`DROP INDEX "public"."IDX_4d9cd1246ac5e4eb3d87032a95"`) + await db.query(`DROP INDEX "public"."IDX_2c2a6c4f46c2585759e410aca8"`) + await db.query(`DROP INDEX "public"."IDX_f20da90e65426e4f794f848b81"`) + await db.query(`DROP INDEX "public"."IDX_cc1b0fc775b917ea6223b8602e"`) + await db.query(`DROP INDEX "public"."IDX_eb1b10f35bffbce1185f4ac3f3"`) + await db.query(`DROP INDEX "public"."IDX_162c14bd69f437bed7e4f71bd8"`) + await db.query(`DROP INDEX "public"."IDX_43ace0c9890ef82e3eb90fe405"`) + await db.query(`DROP INDEX "public"."IDX_a884257019c36496b853d50d3c"`) + await db.query(`DROP INDEX "public"."IDX_64aebba834dae120aead88ff33"`) + await db.query(`DROP INDEX "public"."IDX_d53bbe077c18c36b918abc40ff"`) + await db.query(`DROP TABLE "domain_epoch"`) + await db.query(`DROP INDEX "public"."IDX_333f88cae9e28d581d763fcd3a"`) + await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) + await db.query(`DROP INDEX "public"."IDX_feacf6e5472e742480e182fead"`) + await db.query(`DROP INDEX "public"."IDX_d2800b9e4f55e70c2dbf50c180"`) + await db.query(`DROP INDEX "public"."IDX_4c04931070a2b4b5c86aa12503"`) + await db.query(`DROP INDEX "public"."IDX_fef96292239cebf57a521d0264"`) + await db.query(`DROP INDEX "public"."IDX_89e03f524980b405de261570bb"`) + await db.query(`DROP INDEX "public"."IDX_14aad4eb1f052ff1198ed69aa9"`) + await db.query(`DROP INDEX "public"."IDX_dd129bbbbffb90b197efdd59f0"`) + await db.query(`DROP INDEX "public"."IDX_77df3788bfba37edba3a23da00"`) + await db.query(`DROP INDEX "public"."IDX_d047d4eb28fd592bdfc1f398ae"`) + await db.query(`DROP INDEX "public"."IDX_bbc9922495360081a8c591b312"`) + await db.query(`DROP TABLE "bundle"`) + await db.query(`DROP INDEX "public"."IDX_82b7b684e1b50da245f72d6020"`) + await db.query(`DROP INDEX "public"."IDX_0033c9f116ee25b5ebb8d24222"`) + await db.query(`DROP INDEX "public"."IDX_704516bcbc02fe10ce28e8e262"`) + await db.query(`DROP INDEX "public"."IDX_b5c951f317cc0451d9d3c21aaa"`) + await db.query(`DROP INDEX "public"."IDX_006e8a93183443a738f7c5968b"`) + await db.query(`DROP INDEX "public"."IDX_5c848822e75fbe863d43231468"`) + await db.query(`DROP INDEX "public"."IDX_33b73ddabaa5e322cff6ab15b1"`) + await db.query(`DROP INDEX "public"."IDX_e49c7ec4d50ca7652f97f57172"`) + await db.query(`DROP TABLE "bundle_author"`) + await db.query(`DROP INDEX "public"."IDX_46a6d0670b490fef23fd56406e"`) + await db.query(`DROP INDEX "public"."IDX_e419d11bdca9f6dc30dbb54298"`) + await db.query(`DROP INDEX "public"."IDX_11c48ad072b8a2f5911a48edf5"`) + await db.query(`DROP INDEX "public"."IDX_3ebc9908db2f3e287a5cc279af"`) + await db.query(`DROP INDEX "public"."IDX_912b97c9a90df101e29578a423"`) + await db.query(`DROP INDEX "public"."IDX_d4e6fbfc88663decb33b8240ad"`) + await db.query(`DROP INDEX "public"."IDX_5b758804adabfdb0f507591dfd"`) + await db.query(`DROP TABLE "nominator"`) + await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) + await db.query(`DROP INDEX "public"."IDX_b017cafe03fa79059bd8164c4e"`) + await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) + await db.query(`DROP INDEX "public"."IDX_43aeeb4c46d83dd78aa564c1b1"`) + await db.query(`DROP INDEX "public"."IDX_12baadf2609f7b262a9a760d6d"`) + await db.query(`DROP INDEX "public"."IDX_7093d62ba7e5a6387a686e607e"`) + await db.query(`DROP INDEX "public"."IDX_9ebc942736e76bde99ee21452f"`) + await db.query(`DROP TABLE "deposit"`) + await db.query(`DROP INDEX "public"."IDX_9ced91570695137ec1d60c1a61"`) + await db.query(`DROP INDEX "public"."IDX_8dc544cfa89fb544beea034396"`) + await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) + await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) + await db.query(`DROP INDEX "public"."IDX_6f250bd43f2f631fcb2f589200"`) + await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) + await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) + await db.query(`DROP INDEX "public"."IDX_09a8447db322b039b8a2bbf858"`) + await db.query(`DROP INDEX "public"."IDX_8a397798592cd18d68388c4a58"`) + await db.query(`DROP INDEX "public"."IDX_11f6fba4dd0c1e03e2b61b1fd0"`) + await db.query(`DROP INDEX "public"."IDX_e2d44319cdd3cfc595fac2ddd0"`) + await db.query(`DROP INDEX "public"."IDX_91527392d40d3066ddadda9804"`) + await db.query(`DROP TABLE "withdrawal"`) + await db.query(`DROP INDEX "public"."IDX_66c152572f8743fcd9ddecf2d2"`) + await db.query(`DROP INDEX "public"."IDX_12de4d5556aa377a203cb5b1b2"`) + await db.query(`DROP INDEX "public"."IDX_d5f5ce8abff91d6485c4f84e57"`) + await db.query(`DROP INDEX "public"."IDX_09c9cf2ad9a4f3b674540dbfcf"`) + await db.query(`DROP INDEX "public"."IDX_4028ed4e39f5c919fc3317882b"`) + await db.query(`DROP INDEX "public"."IDX_e2749aaf8ba367458c360a7c73"`) + await db.query(`DROP INDEX "public"."IDX_8fa0aebb91fd2aca95c4d80edb"`) + await db.query(`DROP INDEX "public"."IDX_6e92f3b6d03f580800c31d78ea"`) + await db.query(`DROP INDEX "public"."IDX_8016e5d392912ecc0a425cecec"`) + await db.query(`DROP INDEX "public"."IDX_7207c1052c45aa41c118a01ed0"`) + await db.query(`DROP INDEX "public"."IDX_51ee468e87a9f6eabde5bff0b2"`) + await db.query(`DROP INDEX "public"."IDX_455defcfd4f47b6358358b77e7"`) + await db.query(`DROP INDEX "public"."IDX_803816d11e1df4712ef608af8f"`) + await db.query(`DROP INDEX "public"."IDX_1e01eb0b8dd1e8a22edc53859c"`) + await db.query(`DROP TABLE "reward_event"`) + await db.query(`DROP INDEX "public"."IDX_c58ade91dd87782e5587dea498"`) + await db.query(`DROP INDEX "public"."IDX_df32138995e155bfae4999ec17"`) + await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) + await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) + await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) + await db.query(`DROP TABLE "stats"`) + await db.query(`DROP INDEX "public"."IDX_0b3890ae3ba62ee77fe94af26e"`) + await db.query(`DROP INDEX "public"."IDX_ea4b2bcf5920a1b06f4454bb91"`) + await db.query(`DROP TABLE "stats_per_domain"`) + await db.query(`DROP INDEX "public"."IDX_3ac1b575a2dd3f64faedbde14b"`) + await db.query(`DROP INDEX "public"."IDX_77118ccf015e661215115daaa5"`) + await db.query(`DROP INDEX "public"."IDX_8eb7279e3beeab2964a533cd52"`) + await db.query(`DROP TABLE "stats_per_operator"`) + await db.query(`DROP INDEX "public"."IDX_4a4bff6af8198a2f145ecf637f"`) + await db.query(`DROP INDEX "public"."IDX_466db26acddfccae0a5d487d2c"`) + await db.query(`DROP INDEX "public"."IDX_5ff9cc7e82a620057ef84c3826"`) + await db.query(`DROP INDEX "public"."IDX_3260a5fceb17a3d817e5678d7f"`) + await db.query(`DROP TABLE "stats_per_nominator"`) + await db.query(`DROP INDEX "public"."IDX_1386cedecaa7459304ab08f3c9"`) + await db.query(`DROP INDEX "public"."IDX_0cbe32c48b0b8ce4cdaca40e25"`) + await db.query(`DROP INDEX "public"."IDX_f4eed0a147ec55fa63fee8cff8"`) + await db.query(`DROP INDEX "public"."IDX_b964a78d6565bfc5d4c2c298c1"`) + await db.query(`DROP INDEX "public"."IDX_4f0e392290ae255e10b0ff6500"`) + await db.query(`DROP TABLE "stats_per_account"`) + await db.query(`DROP INDEX "public"."IDX_d520535ebd3dceb62332d2dbaa"`) + await db.query(`DROP INDEX "public"."IDX_6689c432a28949dd81e6b57671"`) + await db.query(`DROP INDEX "public"."IDX_1fdf05c8198889b75485e872bf"`) + } +} diff --git a/indexers/staking-squid/src/events/bundle.ts b/indexers/staking-squid/src/events/bundle.ts index ea3c7ffca..21e23ea0d 100644 --- a/indexers/staking-squid/src/events/bundle.ts +++ b/indexers/staking-squid/src/events/bundle.ts @@ -80,13 +80,18 @@ export function processBundleStoredEvent( blockBundleIndex.toString() ); - const domainEpoch = getOrCreateDomainEpoch(cache, block, domainId, { - epoch: domain.completedEpoch, - blockNumberStart: Number(domainBlockNumber), - timestampStart: getTimestamp(block), - consensusBlockNumberStart: getBlockNumber(block), - consensusBlockHashStart: block.header.hash, - }); + const domainEpoch = getOrCreateDomainEpoch( + cache, + block, + domainId, + domain.completedEpoch, + { + blockNumberStart: Number(domainBlockNumber), + timestampStart: getTimestamp(block), + consensusBlockNumberStart: getBlockNumber(block), + consensusBlockHashStart: block.header.hash, + } + ); domainEpoch.blockNumberEnd = Number(domainBlockNumber); domainEpoch.timestampEnd = getTimestamp(block); domainEpoch.consensusBlockNumberEnd = getBlockNumber(block); diff --git a/indexers/staking-squid/src/storage/domainEpoch.ts b/indexers/staking-squid/src/storage/domainEpoch.ts index f60829e85..a27abc206 100644 --- a/indexers/staking-squid/src/storage/domainEpoch.ts +++ b/indexers/staking-squid/src/storage/domainEpoch.ts @@ -32,10 +32,9 @@ export const getOrCreateDomainEpoch = ( cache: Cache, block: CtxBlock, domainId: string, + epoch: number, props: Partial = {} ): DomainEpoch => { - const epoch = cache.domains.get(domainId)?.completedEpoch ?? 0; - const domainEpoch = cache.domainEpochs.get(epochUID(domainId, epoch)); if (!domainEpoch) return createDomainEpoch(block, domainId, epoch, props); From 82925c527c686bc77783caf3f086cde614585248 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:47:33 -0400 Subject: [PATCH 12/42] remove previous micro squid workflows --- .github/workflows/gh-account-image.yml | 34 --------- .github/workflows/gh-deploy-micro-squids.yml | 79 -------------------- .github/workflows/gh-general-squid-image.yml | 34 --------- .github/workflows/gh-rewards-image.yml | 34 --------- 4 files changed, 181 deletions(-) delete mode 100644 .github/workflows/gh-account-image.yml delete mode 100644 .github/workflows/gh-deploy-micro-squids.yml delete mode 100644 .github/workflows/gh-general-squid-image.yml delete mode 100644 .github/workflows/gh-rewards-image.yml diff --git a/.github/workflows/gh-account-image.yml b/.github/workflows/gh-account-image.yml deleted file mode 100644 index c0df608cd..000000000 --- a/.github/workflows/gh-account-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-account:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/account-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME diff --git a/.github/workflows/gh-deploy-micro-squids.yml b/.github/workflows/gh-deploy-micro-squids.yml deleted file mode 100644 index f243a7807..000000000 --- a/.github/workflows/gh-deploy-micro-squids.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Deploy Docker Compose for Micro Squids on main - -on: - push: - branches: - - production - paths: - - "indexers/general-squid/**" - - "indexers/rewards-squid/**" - - "indexers/accounts-squid/**" - -env: - DOCKER_HOST: ssh://${{ secrets.SSH_USER }}@${{ secrets.SQUID_HOST }} - DEPLOY_PATH: /home/ubuntu/squids/astral - BRANCH_NAME: ${{ github.ref == 'refs/heads/main' && 'main' || github.ref }} - -jobs: - deploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set Hasura secret - id: set_secret - run: echo "hasura_secret=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}" >> $GITHUB_OUTPUT - - - name: Install SSH key - uses: webfactory/ssh-agent@dc588b651fe13675774614f8e6a936a468676387 # v0.9.0 - with: - ssh-private-key: ${{ secrets.SERVER_SSH_PRIVATE_KEY }} - - - name: Add SSH host key fingerprint - run: | - ssh-keyscan -H ${{ secrets.SQUID_HOST }} >> ~/.ssh/known_hosts - - - name: Deploy with Docker Compose - env: - SSH_USER: ${{ secrets.SSH_USER }} - run: | - mkdir -p ~/.ssh - ssh-keyscan -H ${{ secrets.SQUID_HOST }} >> ~/.ssh/known_hosts - ssh ${SSH_USER}@${{ secrets.SQUID_HOST }} " - - if [ ! -d ${DEPLOY_PATH} ]; then - git clone https://github.com/autonomys/astral.git ${DEPLOY_PATH} - else - cd ${DEPLOY_PATH} - git pull - fi - git checkout ${BRANCH_NAME} - - # Securely update the .env file - if [ ! -f .env ]; then - echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ steps.set_secret.outputs.hasura_secret }}' > .env - else - sed -i '/^HASURA_GRAPHQL_ADMIN_SECRET=/d' .env - echo 'HASURA_GRAPHQL_ADMIN_SECRET=${{ steps.set_secret.outputs.hasura_secret }}' >> .env - fi - - docker-compose -f docker-compose-all-squids.yml pull - docker-compose -f docker-compose-all-squids.yml up -d - " - - - name: Notify on failure - if: failure() - env: - SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - fields: repo,message,commit,author,action,eventName,ref,workflow,job - author_name: Deployment failed - mention: here - if_mention: failure,cancelled - job_name: Deploy Docker Compose for Micro Squids on staging - channel: alerts - icon_emoji: ":github:" diff --git a/.github/workflows/gh-general-squid-image.yml b/.github/workflows/gh-general-squid-image.yml deleted file mode 100644 index 7a7cf262c..000000000 --- a/.github/workflows/gh-general-squid-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-general:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/general-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME diff --git a/.github/workflows/gh-rewards-image.yml b/.github/workflows/gh-rewards-image.yml deleted file mode 100644 index 68a6b2533..000000000 --- a/.github/workflows/gh-rewards-image.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update rewards container image - -on: - push: - branches: - - production - - main - -env: - PROCESSOR_NAME: ghcr.io/${{ github.repository_owner }}/blockexplorer-rewards:latest - -jobs: - push: - runs-on: ubuntu-latest - permissions: - packages: write - contents: read - - steps: - - uses: actions/checkout@v3 - - - name: Log into registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ github.token }} - - - name: Build processor image - run: docker build . --target processor -t squid-processor --tag $PROCESSOR_NAME - working-directory: indexers/rewards-squid - - - name: Push processor image - run: docker push $PROCESSOR_NAME From 3f8d83c904395abc7e0bbc7348f4aa5eb608ee75 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:55:52 -0400 Subject: [PATCH 13/42] add known words --- .vscode/astral.code-workspace | 2 ++ .vscode/settings.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.vscode/astral.code-workspace b/.vscode/astral.code-workspace index bdab97095..1317c0f7d 100644 --- a/.vscode/astral.code-workspace +++ b/.vscode/astral.code-workspace @@ -48,6 +48,8 @@ "extrinsics", "gemini", "graphiql", + "hasura", + "deregister", "leaderboard", "siwe", "subscan", diff --git a/.vscode/settings.json b/.vscode/settings.json index 7486204a8..d363d49cf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,8 @@ "extrinsics", "gemini", "graphiql", + "hasura", + "deregister", "leaderboard", "siwe", "subscan", From d3c40ed0e9539431d5f332fc0ec2bd060d10e5bc Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:56:25 -0400 Subject: [PATCH 14/42] cleanup files --- docker-compose-all-squids.yml | 117 ------------------ indexers/consensus-squid/.dockerignore | 4 - indexers/consensus-squid/docker-compose.yml | 15 --- .../consensus-squid/scripts/docker-run.sh | 5 - .../consensus-squid/scripts/sub-client.js | 42 ------- indexers/leaderboard-squid/.dockerignore | 4 - indexers/leaderboard-squid/docker-compose.yml | 15 --- .../leaderboard-squid/scripts/docker-run.sh | 5 - indexers/staking-squid/.dockerignore | 4 - indexers/staking-squid/docker-compose.yml | 15 --- indexers/staking-squid/scripts/docker-run.sh | 5 - indexers/staking-squid/scripts/sub-client.js | 42 ------- 12 files changed, 273 deletions(-) delete mode 100644 docker-compose-all-squids.yml delete mode 100644 indexers/consensus-squid/.dockerignore delete mode 100644 indexers/consensus-squid/docker-compose.yml delete mode 100644 indexers/consensus-squid/scripts/docker-run.sh delete mode 100644 indexers/consensus-squid/scripts/sub-client.js delete mode 100644 indexers/leaderboard-squid/.dockerignore delete mode 100644 indexers/leaderboard-squid/docker-compose.yml delete mode 100644 indexers/leaderboard-squid/scripts/docker-run.sh delete mode 100644 indexers/staking-squid/.dockerignore delete mode 100644 indexers/staking-squid/docker-compose.yml delete mode 100644 indexers/staking-squid/scripts/docker-run.sh delete mode 100644 indexers/staking-squid/scripts/sub-client.js diff --git a/docker-compose-all-squids.yml b/docker-compose-all-squids.yml deleted file mode 100644 index 01e50b6b1..000000000 --- a/docker-compose-all-squids.yml +++ /dev/null @@ -1,117 +0,0 @@ -services: - # General Squid - general-db: - image: postgres:15 - environment: - POSTGRES_DB: general-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5432:5432" - volumes: - - ./data/general-db:/var/lib/postgresql/data - - general-api: - image: ghcr.io/autonomys/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=general-db - - DB_PASS=postgres - - GQL_PORT=4350 - ports: - - "4350:4350" - command: ["sqd", "serve:prod"] - depends_on: - - general-db - - general-processor: - image: ghcr.io/autonomys/blockexplorer-general:latest - environment: - - DB_NAME=general-squid - - DB_PORT=5432 - - DB_HOST=general-db - - DB_PASS=postgres - ports: - - "3000:3000" - command: ["sqd", "process:prod"] - depends_on: - - general-db - - # Rewards Squid - rewards-db: - image: postgres:15 - environment: - POSTGRES_DB: rewards-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5433:5432" - volumes: - - ./data/rewards-db:/var/lib/postgresql/data - - rewards-api: - image: ghcr.io/autonomys/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5433 - - DB_HOST=rewards-db - - DB_PASS=postgres - - GQL_PORT=4351 - ports: - - "4351:4351" - command: ["sqd", "serve:prod"] - depends_on: - - rewards-db - - rewards-processor: - image: ghcr.io/autonomys/blockexplorer-rewards:latest - environment: - - DB_NAME=rewards-squid - - DB_PORT=5433 - - DB_HOST=rewards-db - - DB_PASS=postgres - ports: - - "3001:3000" - command: ["sqd", "process:prod"] - depends_on: - - rewards-db - - # Account Squid - account-db: - image: postgres:15 - environment: - POSTGRES_DB: account-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "5434:5432" - volumes: - - ./data/account-db:/var/lib/postgresql/data - - account-api: - image: ghcr.io/autonomys/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5434 - - DB_HOST=account-db - - DB_PASS=postgres - - GQL_PORT=4352 - ports: - - "4352:4352" - command: ["sqd", "serve:prod"] - depends_on: - - account-db - - account-processor: - image: ghcr.io/autonomys/blockexplorer-account:latest - environment: - - DB_NAME=account-squid - - DB_PORT=5434 - - DB_HOST=account-db - - DB_PASS=postgres - ports: - - "3002:3000" - command: ["sqd", "process:prod"] - depends_on: - - account-db diff --git a/indexers/consensus-squid/.dockerignore b/indexers/consensus-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/consensus-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/consensus-squid/docker-compose.yml b/indexers/consensus-squid/docker-compose.yml deleted file mode 100644 index 90fa8fbc5..000000000 --- a/indexers/consensus-squid/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: consensus-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" - # command: ["postgres", "-c", "log_statement=all"] -# volumes: -# - ./data/db:/var/lib/postgresql/data - diff --git a/indexers/consensus-squid/scripts/docker-run.sh b/indexers/consensus-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/consensus-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/consensus-squid/scripts/sub-client.js b/indexers/consensus-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/consensus-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file diff --git a/indexers/leaderboard-squid/.dockerignore b/indexers/leaderboard-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/leaderboard-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/leaderboard-squid/docker-compose.yml b/indexers/leaderboard-squid/docker-compose.yml deleted file mode 100644 index 30e794433..000000000 --- a/indexers/leaderboard-squid/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: leaderboard-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" - # command: ["postgres", "-c", "log_statement=all"] -# volumes: -# - ./data/db:/var/lib/postgresql/data - diff --git a/indexers/leaderboard-squid/scripts/docker-run.sh b/indexers/leaderboard-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/leaderboard-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/staking-squid/.dockerignore b/indexers/staking-squid/.dockerignore deleted file mode 100644 index 27c983bc0..000000000 --- a/indexers/staking-squid/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -/.git -/node_modules -/lib -/*Versions.jsonl diff --git a/indexers/staking-squid/docker-compose.yml b/indexers/staking-squid/docker-compose.yml deleted file mode 100644 index 837064906..000000000 --- a/indexers/staking-squid/docker-compose.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: "3" - -services: - db: - image: postgres:15 - environment: - POSTGRES_DB: staking-squid - POSTGRES_PASSWORD: postgres - shm_size: 1gb - ports: - - "${DB_PORT}:5432" - # command: ["postgres", "-c", "log_statement=all"] -# volumes: -# - ./data/db:/var/lib/postgresql/data - diff --git a/indexers/staking-squid/scripts/docker-run.sh b/indexers/staking-squid/scripts/docker-run.sh deleted file mode 100644 index 1947733d9..000000000 --- a/indexers/staking-squid/scripts/docker-run.sh +++ /dev/null @@ -1,5 +0,0 @@ -set -e -docker build . --target processor -t squid-processor -# make sure the port matches .env. -# For Linux, add --add-host=host.docker.internal:host-gateway -docker run --rm -e DB_HOST=host.docker.internal --env-file=.env squid-processor \ No newline at end of file diff --git a/indexers/staking-squid/scripts/sub-client.js b/indexers/staking-squid/scripts/sub-client.js deleted file mode 100644 index 87ba38a3c..000000000 --- a/indexers/staking-squid/scripts/sub-client.js +++ /dev/null @@ -1,42 +0,0 @@ -const WebSocket = require('ws') -const { createClient } = require('graphql-ws'); - -const port = process.env.GQL_PORT || 4350 -const host = process.env.GQL_HOST || 'localhost' -const proto = process.env.GQL_PROTO || 'ws' - - -const client = createClient({ - webSocketImpl: WebSocket, - url: `${proto}://${host}:${port}/graphql`, -}); - -client.subscribe( - { - query: ` - subscription { - transfers(limit: 5, orderBy: timestamp_DESC) { - amount - blockNumber - from { - id - } - to { - id - } - } - } - `, - }, - { - next: (data) => { - console.log(`New transfers: ${JSON.stringify(data)}`); - }, - error: (error) => { - console.error('error', error); - }, - complete: () => { - console.log('done!'); - }, - } -); \ No newline at end of file From 7e53f118659320db887f95ec4e8041028b4126b7 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 20:56:37 -0400 Subject: [PATCH 15/42] improve readme --- indexers/README.md | 17 ++++++++++++----- indexers/db/package.json | 3 +++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/indexers/README.md b/indexers/README.md index 79d23b5bd..feabe235c 100644 --- a/indexers/README.md +++ b/indexers/README.md @@ -6,9 +6,9 @@ This directory contains various Subsquid indexers used within the Astral project ## Indexers Overview -- `general-squid`: Handles general data indexing across the blockchain. -- `account-squid`: Manages indexing of account-related data. -- `rewards-squid`: Specializes in indexing and processing reward distributions. +- `consensus-squid`: Responsible for indexing consensus-related data across the blockchain. +- `leaderboard-squid`: Handles the indexing of leaderboard and account-related data. +- `staking-squid`: Focuses on indexing and managing staking-related data. - `squid-blockexplorer`: Utilized for the Astral Block Explorer to index and transform blockchain data for visual representation. (old) ## Installation and Setup @@ -20,8 +20,15 @@ Each indexer has its own set of dependencies and setup instructions. Navigate to To contribute to an indexer or modify its behavior: 1. Clone the repository if you haven't done so already. -2. Navigate to the specific indexer directory you want to modify. -3. Make your changes and ensure they meet the project standards. +2. Open Docker Desktop +3. Run `docker compose up` from root directory +4. Navigate to the specific indexer directory you want to modify. +5. Make your changes and ensure they meet the project standards. +6. Run `sqd codegen` +7. Run `sqd migration:generate` +8. Run `sqd process` + +To get Hasura console running, run `yarn start` from db/ directory ## Testing diff --git a/indexers/db/package.json b/indexers/db/package.json index dd618a032..85a1469e7 100644 --- a/indexers/db/package.json +++ b/indexers/db/package.json @@ -3,6 +3,9 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", + "scripts": { + "start": "hasura console" + }, "devDependencies": { "hasura-cli": "2.36.2" } From 2a618e9f6213d34feb672ee5c8c17145eaa12f5d Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:23:42 -0400 Subject: [PATCH 16/42] add lerna and improve setup --- .gitignore | 7 +- explorer/package.json | 11 + .../db/migrations/1724176996444-Data.js | 17 - .../db/migrations/1724203054399-Data.js | 97 + indexers/consensus-squid/package.json | 16 +- indexers/consensus-squid/schema.graphql | 2 +- indexers/db/package.json | 14 +- ...69247921-Data.js => 1724203054403-Data.js} | 4 +- indexers/leaderboard-squid/package.json | 16 +- .../db/migrations/1724178035744-Data.js | 269 - ...69170410-Data.js => 1724203054265-Data.js} | 4 +- indexers/staking-squid/package.json | 16 +- lerna.json | 5 + package.json | 37 + yarn.lock | 14519 ++++++++++++++++ 15 files changed, 14729 insertions(+), 305 deletions(-) delete mode 100644 indexers/consensus-squid/db/migrations/1724176996444-Data.js create mode 100644 indexers/consensus-squid/db/migrations/1724203054399-Data.js rename indexers/leaderboard-squid/db/migrations/{1724169247921-Data.js => 1724203054403-Data.js} (99%) delete mode 100644 indexers/staking-squid/db/migrations/1724178035744-Data.js rename indexers/staking-squid/db/migrations/{1724169170410-Data.js => 1724203054265-Data.js} (99%) create mode 100644 lerna.json create mode 100644 package.json create mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 084196e7a..cfe6bc09b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ DS_Store -*/DS_Store \ No newline at end of file +*/DS_Store + +node_modules + +# local env files +.env \ No newline at end of file diff --git a/explorer/package.json b/explorer/package.json index a755e21c0..73c0153b1 100644 --- a/explorer/package.json +++ b/explorer/package.json @@ -3,6 +3,17 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, "scripts": { "dev": "next dev", "build": "next build", diff --git a/indexers/consensus-squid/db/migrations/1724176996444-Data.js b/indexers/consensus-squid/db/migrations/1724176996444-Data.js deleted file mode 100644 index 6ea048201..000000000 --- a/indexers/consensus-squid/db/migrations/1724176996444-Data.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = class Data1724176996444 { - name = 'Data1724176996444' - - async up(db) { - await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) - await db.query(`ALTER TABLE "block" DROP COLUMN "timestamp"`) - await db.query(`ALTER TABLE "block" ADD "timestamp" integer NOT NULL`) - await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) - } - - async down(db) { - await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) - await db.query(`ALTER TABLE "block" ADD "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL`) - await db.query(`ALTER TABLE "block" DROP COLUMN "timestamp"`) - await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) - } -} diff --git a/indexers/consensus-squid/db/migrations/1724203054399-Data.js b/indexers/consensus-squid/db/migrations/1724203054399-Data.js new file mode 100644 index 000000000..593a88a94 --- /dev/null +++ b/indexers/consensus-squid/db/migrations/1724203054399-Data.js @@ -0,0 +1,97 @@ +module.exports = class Data1724203054399 { + name = 'Data1724203054399' + + async up(db) { + await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) + await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) + await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "timestamp" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) + await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) + await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) + await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "timestamp" integer NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) + await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) + await db.query(`CREATE INDEX "IDX_fc33c4502a5338a540862a4438" ON "block" ("account_id") `) + await db.query(`CREATE TABLE "extrinsic_module_name" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_e3d3a5a01f50bf01655cf4f30eb" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_bf23a0cce635d8eba9918d0339" ON "extrinsic_module_name" ("name") `) + await db.query(`CREATE INDEX "IDX_e0dd20a60a46b0b9268ed2830e" ON "extrinsic_module_name" ("created_at") `) + await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "pos" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "args" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) + await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) + await db.query(`CREATE INDEX "IDX_6292b3c295f2d9478678eac725" ON "extrinsic" ("account_id") `) + await db.query(`CREATE INDEX "IDX_29ac1ee135f61e5f2e476d3e22" ON "extrinsic" ("signature") `) + await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) + await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) + await db.query(`CREATE TABLE "event_module_name" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_07f4296e4cf56dce19efa3be07c" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_ec4fc7a578894139f5bbdfbb33" ON "event_module_name" ("name") `) + await db.query(`CREATE INDEX "IDX_21dacdfedad37a0c7547c5164a" ON "event_module_name" ("created_at") `) + await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) + await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) + await db.query(`CREATE INDEX "IDX_129efedcb305c80256db2d57a5" ON "event" ("extrinsic_id") `) + await db.query(`CREATE INDEX "IDX_83cf1bd59aa4521ed882fa5145" ON "event" ("call_id") `) + await db.query(`CREATE INDEX "IDX_f0e0f3ea08224cc8c0ef1c7ae8" ON "event" ("created_at") `) + await db.query(`CREATE TABLE "call" ("id" character varying NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "success" boolean NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "error" text NOT NULL, "account_id" text NOT NULL, "parent" text NOT NULL, "pos" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_2098af0169792a34f9cfdd39c47" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_8b212022b7428232091e2f8aa5" ON "call" ("name") `) + await db.query(`CREATE INDEX "IDX_a032945f45cacda2d30f4286df" ON "call" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_44040cb9d4a26689b9c8863226" ON "call" ("account_id") `) + await db.query(`CREATE INDEX "IDX_b06c9b51d1172fba69e828673a" ON "call" ("created_at") `) + await db.query(`CREATE TABLE "log" ("id" character varying NOT NULL, "kind" text NOT NULL, "value" text NOT NULL, "block_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_110007d6221b41e46fcada62a9" ON "log" ("kind") `) + await db.query(`CREATE INDEX "IDX_7d3f5ac68148194ee7ced3032e" ON "log" ("block_id") `) + await db.query(`CREATE INDEX "IDX_a64ab7c456e914191342cfd215" ON "log" ("created_at") `) + } + + async down(db) { + await db.query(`DROP TABLE "account"`) + await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) + await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) + await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) + await db.query(`DROP TABLE "transfer"`) + await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) + await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) + await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) + await db.query(`DROP INDEX "public"."IDX_086e57d995900e69b54046e257"`) + await db.query(`DROP TABLE "block"`) + await db.query(`DROP INDEX "public"."IDX_bce676e2b005104ccb768495db"`) + await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) + await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) + await db.query(`DROP INDEX "public"."IDX_fc33c4502a5338a540862a4438"`) + await db.query(`DROP TABLE "extrinsic_module_name"`) + await db.query(`DROP INDEX "public"."IDX_bf23a0cce635d8eba9918d0339"`) + await db.query(`DROP INDEX "public"."IDX_e0dd20a60a46b0b9268ed2830e"`) + await db.query(`DROP TABLE "extrinsic"`) + await db.query(`DROP INDEX "public"."IDX_1f45de0713a55049009e8e8127"`) + await db.query(`DROP INDEX "public"."IDX_86604c0ff42c185b99ee69c718"`) + await db.query(`DROP INDEX "public"."IDX_6292b3c295f2d9478678eac725"`) + await db.query(`DROP INDEX "public"."IDX_29ac1ee135f61e5f2e476d3e22"`) + await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) + await db.query(`DROP INDEX "public"."IDX_6e232918078798b1fade21dcf8"`) + await db.query(`DROP INDEX "public"."IDX_b09d3ab32bef80d2e4bf48cdac"`) + await db.query(`DROP TABLE "event_module_name"`) + await db.query(`DROP INDEX "public"."IDX_ec4fc7a578894139f5bbdfbb33"`) + await db.query(`DROP INDEX "public"."IDX_21dacdfedad37a0c7547c5164a"`) + await db.query(`DROP TABLE "event"`) + await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) + await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) + await db.query(`DROP INDEX "public"."IDX_2b0d35d675c4f99751855c4502"`) + await db.query(`DROP INDEX "public"."IDX_129efedcb305c80256db2d57a5"`) + await db.query(`DROP INDEX "public"."IDX_83cf1bd59aa4521ed882fa5145"`) + await db.query(`DROP INDEX "public"."IDX_f0e0f3ea08224cc8c0ef1c7ae8"`) + await db.query(`DROP TABLE "call"`) + await db.query(`DROP INDEX "public"."IDX_8b212022b7428232091e2f8aa5"`) + await db.query(`DROP INDEX "public"."IDX_a032945f45cacda2d30f4286df"`) + await db.query(`DROP INDEX "public"."IDX_44040cb9d4a26689b9c8863226"`) + await db.query(`DROP INDEX "public"."IDX_b06c9b51d1172fba69e828673a"`) + await db.query(`DROP TABLE "log"`) + await db.query(`DROP INDEX "public"."IDX_110007d6221b41e46fcada62a9"`) + await db.query(`DROP INDEX "public"."IDX_7d3f5ac68148194ee7ced3032e"`) + await db.query(`DROP INDEX "public"."IDX_a64ab7c456e914191342cfd215"`) + } +} diff --git a/indexers/consensus-squid/package.json b/indexers/consensus-squid/package.json index 7c5598127..ed8cbeb41 100644 --- a/indexers/consensus-squid/package.json +++ b/indexers/consensus-squid/package.json @@ -1,13 +1,10 @@ { "name": "consensus-squid", + "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, - "scripts": { - "build": "rm -rf lib && tsc", - "deploy": "sqd deploy --org autonomys-labs ." - }, "repository": { "type": "git", "url": "https://github.com/autonomys/astral" @@ -16,6 +13,17 @@ "name": "Autonomys", "url": "https://www.autonomys.xyz" }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs ." + }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index ac1bc3d33..63478cd6f 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -8,7 +8,7 @@ type Account @entity { updatedAt: Int! @index } -type Account @entity { +type Transfer @entity { id: ID! @index from: String! @index to: String! @index diff --git a/indexers/db/package.json b/indexers/db/package.json index 85a1469e7..f9128d0f9 100644 --- a/indexers/db/package.json +++ b/indexers/db/package.json @@ -3,8 +3,20 @@ "version": "1.0.0", "main": "index.js", "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, "scripts": { - "start": "hasura console" + "start": "hasura console", + "metadata": "hasura metadata apply --skip-update-check" }, "devDependencies": { "hasura-cli": "2.36.2" diff --git a/indexers/leaderboard-squid/db/migrations/1724169247921-Data.js b/indexers/leaderboard-squid/db/migrations/1724203054403-Data.js similarity index 99% rename from indexers/leaderboard-squid/db/migrations/1724169247921-Data.js rename to indexers/leaderboard-squid/db/migrations/1724203054403-Data.js index 4422d695f..1937bea86 100644 --- a/indexers/leaderboard-squid/db/migrations/1724169247921-Data.js +++ b/indexers/leaderboard-squid/db/migrations/1724203054403-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724169247921 { - name = 'Data1724169247921' +module.exports = class Data1724203054403 { + name = 'Data1724203054403' async up(db) { await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) diff --git a/indexers/leaderboard-squid/package.json b/indexers/leaderboard-squid/package.json index 79045f065..6a749c39d 100644 --- a/indexers/leaderboard-squid/package.json +++ b/indexers/leaderboard-squid/package.json @@ -1,13 +1,10 @@ { "name": "leaderboard-squid", + "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, - "scripts": { - "build": "rm -rf lib && tsc", - "deploy": "sqd deploy --org autonomys-labs ." - }, "repository": { "type": "git", "url": "https://github.com/autonomys/astral" @@ -16,6 +13,17 @@ "name": "Autonomys", "url": "https://www.autonomys.xyz" }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs ." + }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", diff --git a/indexers/staking-squid/db/migrations/1724178035744-Data.js b/indexers/staking-squid/db/migrations/1724178035744-Data.js deleted file mode 100644 index c686cab45..000000000 --- a/indexers/staking-squid/db/migrations/1724178035744-Data.js +++ /dev/null @@ -1,269 +0,0 @@ -module.exports = class Data1724178035744 { - name = 'Data1724178035744' - - async up(db) { - await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c1e90b3654ffe0a5544e502edb" ON "domain" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_c117722589b2b0f927aa16e25f" ON "domain" ("account_id") `) - await db.query(`CREATE INDEX "IDX_26a07113f90df161f919c7d5a6" ON "domain" ("name") `) - await db.query(`CREATE INDEX "IDX_36bfbe927612b8c0712c25f5a0" ON "domain" ("runtime_id") `) - await db.query(`CREATE INDEX "IDX_9f96c312a490b7a2a3d017721e" ON "domain" ("runtime") `) - await db.query(`CREATE INDEX "IDX_80867983eb3f6e204acfea4214" ON "domain" ("completed_epoch") `) - await db.query(`CREATE INDEX "IDX_e3a1b94f40001682587d9b0a3d" ON "domain" ("last_domain_block_number") `) - await db.query(`CREATE INDEX "IDX_6da91e378c5e17e2d467b592b0" ON "domain" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_35b49bec8ab1e3864de09a60d6" ON "domain" ("created_at") `) - await db.query(`CREATE INDEX "IDX_c3ac554ab7a2ed97d9a0af4083" ON "domain" ("updated_at") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "signing_key" text NOT NULL, "minimum_nominator_stake" numeric NOT NULL, "nomination_tax" integer NOT NULL, "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "banner" text NOT NULL, "website" text NOT NULL, "website_verified" boolean NOT NULL, "email" text NOT NULL, "email_verified" boolean NOT NULL, "discord" text NOT NULL, "github" text NOT NULL, "twitter" text NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_epoch_rewards" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "raw_status" text NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "bundle_count" integer NOT NULL, "status" character varying(12) NOT NULL, "pending_action" character varying(27) NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ed3a1bcef6df98998f07a571a7" ON "operator" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_91b197ab29ad85b5e616289ea0" ON "operator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_1c800426a1f738c1b202ff839f" ON "operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) - await db.query(`CREATE INDEX "IDX_b383ed84b5891bd42be1d2eefd" ON "operator" ("name") `) - await db.query(`CREATE INDEX "IDX_df2e0bb74daa727ab46b3292b0" ON "operator" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_c7fd0bf382a9832cf1db87827c" ON "operator" ("status") `) - await db.query(`CREATE INDEX "IDX_987b325e3ab4045266b612b032" ON "operator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_d6260ed02d20cf8231ebb742d6" ON "operator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) - await db.query(`CREATE TABLE "domain_block" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "block_number" integer NOT NULL, "block_hash" text NOT NULL, "extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_80e382ab071c0035308c3bbe269" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4d9cd1246ac5e4eb3d87032a95" ON "domain_block" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_2c2a6c4f46c2585759e410aca8" ON "domain_block" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_f20da90e65426e4f794f848b81" ON "domain_block" ("block_number") `) - await db.query(`CREATE INDEX "IDX_cc1b0fc775b917ea6223b8602e" ON "domain_block" ("block_hash") `) - await db.query(`CREATE INDEX "IDX_eb1b10f35bffbce1185f4ac3f3" ON "domain_block" ("epoch") `) - await db.query(`CREATE INDEX "IDX_162c14bd69f437bed7e4f71bd8" ON "domain_block" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_43ace0c9890ef82e3eb90fe405" ON "domain_block" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_a884257019c36496b853d50d3c" ON "domain_block" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_64aebba834dae120aead88ff33" ON "domain_block" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d53bbe077c18c36b918abc40ff" ON "domain_block" ("updated_at") `) - await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "epoch" integer NOT NULL, "domain_id" text NOT NULL, "block_number_start" integer NOT NULL, "block_number_end" integer NOT NULL, "block_count" integer NOT NULL, "timestamp_start" TIMESTAMP WITH TIME ZONE NOT NULL, "timestamp_end" TIMESTAMP WITH TIME ZONE NOT NULL, "epoch_duration" numeric NOT NULL, "consensus_block_number_start" integer NOT NULL, "consensus_block_number_end" integer NOT NULL, "consensus_block_hash_start" text NOT NULL, "consensus_block_hash_end" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_333f88cae9e28d581d763fcd3a" ON "domain_epoch" ("epoch") `) - await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_feacf6e5472e742480e182fead" ON "domain_epoch" ("block_number_start") `) - await db.query(`CREATE INDEX "IDX_d2800b9e4f55e70c2dbf50c180" ON "domain_epoch" ("block_number_end") `) - await db.query(`CREATE INDEX "IDX_4c04931070a2b4b5c86aa12503" ON "domain_epoch" ("timestamp_start") `) - await db.query(`CREATE INDEX "IDX_fef96292239cebf57a521d0264" ON "domain_epoch" ("timestamp_end") `) - await db.query(`CREATE INDEX "IDX_89e03f524980b405de261570bb" ON "domain_epoch" ("consensus_block_number_start") `) - await db.query(`CREATE INDEX "IDX_14aad4eb1f052ff1198ed69aa9" ON "domain_epoch" ("consensus_block_number_end") `) - await db.query(`CREATE INDEX "IDX_dd129bbbbffb90b197efdd59f0" ON "domain_epoch" ("consensus_block_hash_start") `) - await db.query(`CREATE INDEX "IDX_77df3788bfba37edba3a23da00" ON "domain_epoch" ("consensus_block_hash_end") `) - await db.query(`CREATE INDEX "IDX_d047d4eb28fd592bdfc1f398ae" ON "domain_epoch" ("created_at") `) - await db.query(`CREATE INDEX "IDX_bbc9922495360081a8c591b312" ON "domain_epoch" ("updated_at") `) - await db.query(`CREATE TABLE "bundle" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "domain_block_number" integer NOT NULL, "domain_block_hash" text NOT NULL, "domain_block_extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "consensus_storage_fee" numeric NOT NULL, "domain_execution_fee" numeric NOT NULL, "burned_balance" numeric NOT NULL, CONSTRAINT "PK_637e3f87e837d6532109c198dea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_82b7b684e1b50da245f72d6020" ON "bundle" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0033c9f116ee25b5ebb8d24222" ON "bundle" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_704516bcbc02fe10ce28e8e262" ON "bundle" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_b5c951f317cc0451d9d3c21aaa" ON "bundle" ("domain_block_number") `) - await db.query(`CREATE INDEX "IDX_006e8a93183443a738f7c5968b" ON "bundle" ("epoch") `) - await db.query(`CREATE INDEX "IDX_5c848822e75fbe863d43231468" ON "bundle" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_33b73ddabaa5e322cff6ab15b1" ON "bundle" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_e49c7ec4d50ca7652f97f57172" ON "bundle" ("total_volume") `) - await db.query(`CREATE TABLE "bundle_author" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "account_id" text NOT NULL, "operator_id" text NOT NULL, "bundle_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "epoch" integer NOT NULL, CONSTRAINT "PK_54ba310ce65f841f8948c5f230c" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_46a6d0670b490fef23fd56406e" ON "bundle_author" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_e419d11bdca9f6dc30dbb54298" ON "bundle_author" ("account_id") `) - await db.query(`CREATE INDEX "IDX_11c48ad072b8a2f5911a48edf5" ON "bundle_author" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_3ebc9908db2f3e287a5cc279af" ON "bundle_author" ("bundle_id") `) - await db.query(`CREATE INDEX "IDX_912b97c9a90df101e29578a423" ON "bundle_author" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_d4e6fbfc88663decb33b8240ad" ON "bundle_author" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_5b758804adabfdb0f507591dfd" ON "bundle_author" ("epoch") `) - await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "known_shares" numeric NOT NULL, "known_storage_fee_deposit" numeric NOT NULL, "pending_amount" numeric NOT NULL, "pending_storage_fee_deposit" numeric NOT NULL, "pending_effective_domain_epoch" integer NOT NULL, "total_withdrawal_amounts" numeric NOT NULL, "total_storage_fee_refund" numeric NOT NULL, "unlock_at_confirmed_domain_block_number" integer array NOT NULL, "pending_shares" numeric NOT NULL, "pending_storage_fee_refund" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_deposits_count" integer NOT NULL, "total_withdrawals_count" integer NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "status" character varying(8) NOT NULL, "pending_action" character varying(27) NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_b017cafe03fa79059bd8164c4e" ON "nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_43aeeb4c46d83dd78aa564c1b1" ON "nominator" ("status") `) - await db.query(`CREATE INDEX "IDX_12baadf2609f7b262a9a760d6d" ON "nominator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_7093d62ba7e5a6387a686e607e" ON "nominator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_9ebc942736e76bde99ee21452f" ON "nominator" ("updated_at") `) - await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "amount" numeric NOT NULL, "storage_fee_deposit" numeric NOT NULL, "total_amount" numeric NOT NULL, "total_withdrawn" numeric NOT NULL, "status" character varying(19) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text NOT NULL, "epoch_deposited_at" integer NOT NULL, "domain_block_number_deposited_at" integer NOT NULL, "created_at" integer NOT NULL, "staked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_9ced91570695137ec1d60c1a61" ON "deposit" ("account_id") `) - await db.query(`CREATE INDEX "IDX_8dc544cfa89fb544beea034396" ON "deposit" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_6f250bd43f2f631fcb2f589200" ON "deposit" ("status") `) - await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_09a8447db322b039b8a2bbf858" ON "deposit" ("epoch_deposited_at") `) - await db.query(`CREATE INDEX "IDX_8a397798592cd18d68388c4a58" ON "deposit" ("domain_block_number_deposited_at") `) - await db.query(`CREATE INDEX "IDX_11f6fba4dd0c1e03e2b61b1fd0" ON "deposit" ("created_at") `) - await db.query(`CREATE INDEX "IDX_e2d44319cdd3cfc595fac2ddd0" ON "deposit" ("staked_at") `) - await db.query(`CREATE INDEX "IDX_91527392d40d3066ddadda9804" ON "deposit" ("updated_at") `) - await db.query(`CREATE TABLE "withdrawal" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "shares" numeric NOT NULL, "estimated_amount" numeric NOT NULL, "unlocked_amount" numeric NOT NULL, "unlocked_storage_fee" numeric NOT NULL, "total_amount" numeric NOT NULL, "status" character varying(16) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "withdraw_extrinsic_hash" text NOT NULL, "unlock_extrinsic_hash" text NOT NULL, "epoch_withdrawal_requested_at" integer NOT NULL, "domain_block_number_withdrawal_requested_at" integer NOT NULL, "created_at" integer NOT NULL, "ready_at" integer NOT NULL, "unlocked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_840e247aaad3fbd4e18129122a2" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_66c152572f8743fcd9ddecf2d2" ON "withdrawal" ("account_id") `) - await db.query(`CREATE INDEX "IDX_12de4d5556aa377a203cb5b1b2" ON "withdrawal" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_d5f5ce8abff91d6485c4f84e57" ON "withdrawal" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_09c9cf2ad9a4f3b674540dbfcf" ON "withdrawal" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_4028ed4e39f5c919fc3317882b" ON "withdrawal" ("status") `) - await db.query(`CREATE INDEX "IDX_e2749aaf8ba367458c360a7c73" ON "withdrawal" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_8fa0aebb91fd2aca95c4d80edb" ON "withdrawal" ("withdraw_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_6e92f3b6d03f580800c31d78ea" ON "withdrawal" ("unlock_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_8016e5d392912ecc0a425cecec" ON "withdrawal" ("epoch_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_7207c1052c45aa41c118a01ed0" ON "withdrawal" ("domain_block_number_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_51ee468e87a9f6eabde5bff0b2" ON "withdrawal" ("created_at") `) - await db.query(`CREATE INDEX "IDX_455defcfd4f47b6358358b77e7" ON "withdrawal" ("ready_at") `) - await db.query(`CREATE INDEX "IDX_803816d11e1df4712ef608af8f" ON "withdrawal" ("unlocked_at") `) - await db.query(`CREATE INDEX "IDX_1e01eb0b8dd1e8a22edc53859c" ON "withdrawal" ("updated_at") `) - await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "amount" numeric NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text NOT NULL, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c58ade91dd87782e5587dea498" ON "reward_event" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_df32138995e155bfae4999ec17" ON "reward_event" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "stats" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "domains_count" integer NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c76e93dfef28ba9b6942f578ab1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_0b3890ae3ba62ee77fe94af26e" ON "stats" ("block_number") `) - await db.query(`CREATE INDEX "IDX_ea4b2bcf5920a1b06f4454bb91" ON "stats" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_domain" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_0edbe67267dbe09a2a691517eee" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3ac1b575a2dd3f64faedbde14b" ON "stats_per_domain" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_77118ccf015e661215115daaa5" ON "stats_per_domain" ("block_number") `) - await db.query(`CREATE INDEX "IDX_8eb7279e3beeab2964a533cd52" ON "stats_per_domain" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_operator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_8cff6fe09e3e5510f0c90e42cf5" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4a4bff6af8198a2f145ecf637f" ON "stats_per_operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_466db26acddfccae0a5d487d2c" ON "stats_per_operator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_5ff9cc7e82a620057ef84c3826" ON "stats_per_operator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_3260a5fceb17a3d817e5678d7f" ON "stats_per_operator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_nominator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_cbe18fadd4ac8162a3ea72ed7c0" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1386cedecaa7459304ab08f3c9" ON "stats_per_nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0cbe32c48b0b8ce4cdaca40e25" ON "stats_per_nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_f4eed0a147ec55fa63fee8cff8" ON "stats_per_nominator" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_b964a78d6565bfc5d4c2c298c1" ON "stats_per_nominator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_4f0e392290ae255e10b0ff6500" ON "stats_per_nominator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_account" ("id" character varying NOT NULL, "account_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c2ae964c132359bab5903ede72f" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d520535ebd3dceb62332d2dbaa" ON "stats_per_account" ("account_id") `) - await db.query(`CREATE INDEX "IDX_6689c432a28949dd81e6b57671" ON "stats_per_account" ("block_number") `) - await db.query(`CREATE INDEX "IDX_1fdf05c8198889b75485e872bf" ON "stats_per_account" ("timestamp") `) - } - - async down(db) { - await db.query(`DROP TABLE "domain"`) - await db.query(`DROP INDEX "public"."IDX_c1e90b3654ffe0a5544e502edb"`) - await db.query(`DROP INDEX "public"."IDX_c117722589b2b0f927aa16e25f"`) - await db.query(`DROP INDEX "public"."IDX_26a07113f90df161f919c7d5a6"`) - await db.query(`DROP INDEX "public"."IDX_36bfbe927612b8c0712c25f5a0"`) - await db.query(`DROP INDEX "public"."IDX_9f96c312a490b7a2a3d017721e"`) - await db.query(`DROP INDEX "public"."IDX_80867983eb3f6e204acfea4214"`) - await db.query(`DROP INDEX "public"."IDX_e3a1b94f40001682587d9b0a3d"`) - await db.query(`DROP INDEX "public"."IDX_6da91e378c5e17e2d467b592b0"`) - await db.query(`DROP INDEX "public"."IDX_35b49bec8ab1e3864de09a60d6"`) - await db.query(`DROP INDEX "public"."IDX_c3ac554ab7a2ed97d9a0af4083"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) - await db.query(`DROP TABLE "operator"`) - await db.query(`DROP INDEX "public"."IDX_ed3a1bcef6df98998f07a571a7"`) - await db.query(`DROP INDEX "public"."IDX_91b197ab29ad85b5e616289ea0"`) - await db.query(`DROP INDEX "public"."IDX_1c800426a1f738c1b202ff839f"`) - await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) - await db.query(`DROP INDEX "public"."IDX_b383ed84b5891bd42be1d2eefd"`) - await db.query(`DROP INDEX "public"."IDX_df2e0bb74daa727ab46b3292b0"`) - await db.query(`DROP INDEX "public"."IDX_c7fd0bf382a9832cf1db87827c"`) - await db.query(`DROP INDEX "public"."IDX_987b325e3ab4045266b612b032"`) - await db.query(`DROP INDEX "public"."IDX_d6260ed02d20cf8231ebb742d6"`) - await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) - await db.query(`DROP TABLE "domain_block"`) - await db.query(`DROP INDEX "public"."IDX_4d9cd1246ac5e4eb3d87032a95"`) - await db.query(`DROP INDEX "public"."IDX_2c2a6c4f46c2585759e410aca8"`) - await db.query(`DROP INDEX "public"."IDX_f20da90e65426e4f794f848b81"`) - await db.query(`DROP INDEX "public"."IDX_cc1b0fc775b917ea6223b8602e"`) - await db.query(`DROP INDEX "public"."IDX_eb1b10f35bffbce1185f4ac3f3"`) - await db.query(`DROP INDEX "public"."IDX_162c14bd69f437bed7e4f71bd8"`) - await db.query(`DROP INDEX "public"."IDX_43ace0c9890ef82e3eb90fe405"`) - await db.query(`DROP INDEX "public"."IDX_a884257019c36496b853d50d3c"`) - await db.query(`DROP INDEX "public"."IDX_64aebba834dae120aead88ff33"`) - await db.query(`DROP INDEX "public"."IDX_d53bbe077c18c36b918abc40ff"`) - await db.query(`DROP TABLE "domain_epoch"`) - await db.query(`DROP INDEX "public"."IDX_333f88cae9e28d581d763fcd3a"`) - await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) - await db.query(`DROP INDEX "public"."IDX_feacf6e5472e742480e182fead"`) - await db.query(`DROP INDEX "public"."IDX_d2800b9e4f55e70c2dbf50c180"`) - await db.query(`DROP INDEX "public"."IDX_4c04931070a2b4b5c86aa12503"`) - await db.query(`DROP INDEX "public"."IDX_fef96292239cebf57a521d0264"`) - await db.query(`DROP INDEX "public"."IDX_89e03f524980b405de261570bb"`) - await db.query(`DROP INDEX "public"."IDX_14aad4eb1f052ff1198ed69aa9"`) - await db.query(`DROP INDEX "public"."IDX_dd129bbbbffb90b197efdd59f0"`) - await db.query(`DROP INDEX "public"."IDX_77df3788bfba37edba3a23da00"`) - await db.query(`DROP INDEX "public"."IDX_d047d4eb28fd592bdfc1f398ae"`) - await db.query(`DROP INDEX "public"."IDX_bbc9922495360081a8c591b312"`) - await db.query(`DROP TABLE "bundle"`) - await db.query(`DROP INDEX "public"."IDX_82b7b684e1b50da245f72d6020"`) - await db.query(`DROP INDEX "public"."IDX_0033c9f116ee25b5ebb8d24222"`) - await db.query(`DROP INDEX "public"."IDX_704516bcbc02fe10ce28e8e262"`) - await db.query(`DROP INDEX "public"."IDX_b5c951f317cc0451d9d3c21aaa"`) - await db.query(`DROP INDEX "public"."IDX_006e8a93183443a738f7c5968b"`) - await db.query(`DROP INDEX "public"."IDX_5c848822e75fbe863d43231468"`) - await db.query(`DROP INDEX "public"."IDX_33b73ddabaa5e322cff6ab15b1"`) - await db.query(`DROP INDEX "public"."IDX_e49c7ec4d50ca7652f97f57172"`) - await db.query(`DROP TABLE "bundle_author"`) - await db.query(`DROP INDEX "public"."IDX_46a6d0670b490fef23fd56406e"`) - await db.query(`DROP INDEX "public"."IDX_e419d11bdca9f6dc30dbb54298"`) - await db.query(`DROP INDEX "public"."IDX_11c48ad072b8a2f5911a48edf5"`) - await db.query(`DROP INDEX "public"."IDX_3ebc9908db2f3e287a5cc279af"`) - await db.query(`DROP INDEX "public"."IDX_912b97c9a90df101e29578a423"`) - await db.query(`DROP INDEX "public"."IDX_d4e6fbfc88663decb33b8240ad"`) - await db.query(`DROP INDEX "public"."IDX_5b758804adabfdb0f507591dfd"`) - await db.query(`DROP TABLE "nominator"`) - await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) - await db.query(`DROP INDEX "public"."IDX_b017cafe03fa79059bd8164c4e"`) - await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) - await db.query(`DROP INDEX "public"."IDX_43aeeb4c46d83dd78aa564c1b1"`) - await db.query(`DROP INDEX "public"."IDX_12baadf2609f7b262a9a760d6d"`) - await db.query(`DROP INDEX "public"."IDX_7093d62ba7e5a6387a686e607e"`) - await db.query(`DROP INDEX "public"."IDX_9ebc942736e76bde99ee21452f"`) - await db.query(`DROP TABLE "deposit"`) - await db.query(`DROP INDEX "public"."IDX_9ced91570695137ec1d60c1a61"`) - await db.query(`DROP INDEX "public"."IDX_8dc544cfa89fb544beea034396"`) - await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) - await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) - await db.query(`DROP INDEX "public"."IDX_6f250bd43f2f631fcb2f589200"`) - await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) - await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) - await db.query(`DROP INDEX "public"."IDX_09a8447db322b039b8a2bbf858"`) - await db.query(`DROP INDEX "public"."IDX_8a397798592cd18d68388c4a58"`) - await db.query(`DROP INDEX "public"."IDX_11f6fba4dd0c1e03e2b61b1fd0"`) - await db.query(`DROP INDEX "public"."IDX_e2d44319cdd3cfc595fac2ddd0"`) - await db.query(`DROP INDEX "public"."IDX_91527392d40d3066ddadda9804"`) - await db.query(`DROP TABLE "withdrawal"`) - await db.query(`DROP INDEX "public"."IDX_66c152572f8743fcd9ddecf2d2"`) - await db.query(`DROP INDEX "public"."IDX_12de4d5556aa377a203cb5b1b2"`) - await db.query(`DROP INDEX "public"."IDX_d5f5ce8abff91d6485c4f84e57"`) - await db.query(`DROP INDEX "public"."IDX_09c9cf2ad9a4f3b674540dbfcf"`) - await db.query(`DROP INDEX "public"."IDX_4028ed4e39f5c919fc3317882b"`) - await db.query(`DROP INDEX "public"."IDX_e2749aaf8ba367458c360a7c73"`) - await db.query(`DROP INDEX "public"."IDX_8fa0aebb91fd2aca95c4d80edb"`) - await db.query(`DROP INDEX "public"."IDX_6e92f3b6d03f580800c31d78ea"`) - await db.query(`DROP INDEX "public"."IDX_8016e5d392912ecc0a425cecec"`) - await db.query(`DROP INDEX "public"."IDX_7207c1052c45aa41c118a01ed0"`) - await db.query(`DROP INDEX "public"."IDX_51ee468e87a9f6eabde5bff0b2"`) - await db.query(`DROP INDEX "public"."IDX_455defcfd4f47b6358358b77e7"`) - await db.query(`DROP INDEX "public"."IDX_803816d11e1df4712ef608af8f"`) - await db.query(`DROP INDEX "public"."IDX_1e01eb0b8dd1e8a22edc53859c"`) - await db.query(`DROP TABLE "reward_event"`) - await db.query(`DROP INDEX "public"."IDX_c58ade91dd87782e5587dea498"`) - await db.query(`DROP INDEX "public"."IDX_df32138995e155bfae4999ec17"`) - await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) - await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) - await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) - await db.query(`DROP TABLE "stats"`) - await db.query(`DROP INDEX "public"."IDX_0b3890ae3ba62ee77fe94af26e"`) - await db.query(`DROP INDEX "public"."IDX_ea4b2bcf5920a1b06f4454bb91"`) - await db.query(`DROP TABLE "stats_per_domain"`) - await db.query(`DROP INDEX "public"."IDX_3ac1b575a2dd3f64faedbde14b"`) - await db.query(`DROP INDEX "public"."IDX_77118ccf015e661215115daaa5"`) - await db.query(`DROP INDEX "public"."IDX_8eb7279e3beeab2964a533cd52"`) - await db.query(`DROP TABLE "stats_per_operator"`) - await db.query(`DROP INDEX "public"."IDX_4a4bff6af8198a2f145ecf637f"`) - await db.query(`DROP INDEX "public"."IDX_466db26acddfccae0a5d487d2c"`) - await db.query(`DROP INDEX "public"."IDX_5ff9cc7e82a620057ef84c3826"`) - await db.query(`DROP INDEX "public"."IDX_3260a5fceb17a3d817e5678d7f"`) - await db.query(`DROP TABLE "stats_per_nominator"`) - await db.query(`DROP INDEX "public"."IDX_1386cedecaa7459304ab08f3c9"`) - await db.query(`DROP INDEX "public"."IDX_0cbe32c48b0b8ce4cdaca40e25"`) - await db.query(`DROP INDEX "public"."IDX_f4eed0a147ec55fa63fee8cff8"`) - await db.query(`DROP INDEX "public"."IDX_b964a78d6565bfc5d4c2c298c1"`) - await db.query(`DROP INDEX "public"."IDX_4f0e392290ae255e10b0ff6500"`) - await db.query(`DROP TABLE "stats_per_account"`) - await db.query(`DROP INDEX "public"."IDX_d520535ebd3dceb62332d2dbaa"`) - await db.query(`DROP INDEX "public"."IDX_6689c432a28949dd81e6b57671"`) - await db.query(`DROP INDEX "public"."IDX_1fdf05c8198889b75485e872bf"`) - } -} diff --git a/indexers/staking-squid/db/migrations/1724169170410-Data.js b/indexers/staking-squid/db/migrations/1724203054265-Data.js similarity index 99% rename from indexers/staking-squid/db/migrations/1724169170410-Data.js rename to indexers/staking-squid/db/migrations/1724203054265-Data.js index 9bd49288c..cce8a5322 100644 --- a/indexers/staking-squid/db/migrations/1724169170410-Data.js +++ b/indexers/staking-squid/db/migrations/1724203054265-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724169170410 { - name = 'Data1724169170410' +module.exports = class Data1724203054265 { + name = 'Data1724203054265' async up(db) { await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) diff --git a/indexers/staking-squid/package.json b/indexers/staking-squid/package.json index d5f58b42c..fa924e664 100644 --- a/indexers/staking-squid/package.json +++ b/indexers/staking-squid/package.json @@ -1,13 +1,10 @@ { "name": "staking-squid", + "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, - "scripts": { - "build": "rm -rf lib && tsc", - "deploy": "sqd deploy --org autonomys-labs ." - }, "repository": { "type": "git", "url": "https://github.com/autonomys/astral" @@ -16,6 +13,17 @@ "name": "Autonomys", "url": "https://www.autonomys.xyz" }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs ." + }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", diff --git a/lerna.json b/lerna.json new file mode 100644 index 000000000..847a51415 --- /dev/null +++ b/lerna.json @@ -0,0 +1,5 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "0.0.0", + "npmClient": "yarn" +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..7ae1cc83d --- /dev/null +++ b/package.json @@ -0,0 +1,37 @@ +{ + "name": "astral", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "workspaces": [ + "indexers/*", + "explorer" + ], + "scripts": { + "up": "docker compose up", + "down": "docker compose down", + "db": "lerna run start --scope=db", + "db:metadata": "lerna run metadata --scope=db", + "sqd:typegen": "lerna run typegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "sqd:codegen": "lerna run codegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "sqd:migration": "lerna run migration --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "sqd:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "sqd:process": "lerna run process --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "sqd": "sqd:typegen && sqd:codegen && sqd:migration && sqd:build && sqd:process" + }, + "devDependencies": { + "lerna": "^8.1.8" + } +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..51d30a7b3 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,14519 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@adobe/css-tools@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63" + integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ== + +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.yarnpkg.com/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz#63430d04bd8c5e74f8d7d049338f1cd9d4f02069" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@apideck/better-ajv-errors@^0.3.1": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz#957d4c28e886a64a8141f7522783be65733ff097" + integrity sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA== + dependencies: + json-schema "^0.4.0" + jsonpointer "^5.0.0" + leven "^3.1.0" + +"@apollo/client@^3.7.0": + version "3.11.4" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.11.4.tgz#8b0fed2d091d47597e8ddafca85776bf612ae3aa" + integrity sha512-bmgYKkULpym8wt8aXlAZ1heaYo0skLJ5ru0qJ+JCRoo03Pe+yIDbBCnqlDw6Mjj76hFkDw3HwFMgZC2Hxp30Mg== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/caches" "^1.0.0" + "@wry/equality" "^0.5.6" + "@wry/trie" "^0.5.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.18.0" + prop-types "^15.7.2" + rehackt "^0.1.0" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@apollo/experimental-nextjs-app-support@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@apollo/experimental-nextjs-app-support/-/experimental-nextjs-app-support-0.8.0.tgz#7c6627195d1895bd7698b29174afe85dc9013ddf" + integrity sha512-uyNIkOkew0T6ukC8ycbWBeTu8gtDSD5i+NVGEHU0DIEQaToFHObYcvIxaQ/8hvWzgvnpNU/KMsApfGXA9Xkpyw== + dependencies: + server-only "^0.0.1" + superjson "^1.12.2 || ^2.0.0" + ts-invariant "^0.10.3" + +"@apollo/protobufjs@1.2.6": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.6.tgz#d601e65211e06ae1432bf5993a1a0105f2862f27" + integrity sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + "@types/node" "^10.1.0" + long "^4.0.0" + +"@apollo/protobufjs@1.2.7": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.2.7.tgz#3a8675512817e4a046a897e5f4f16415f16a7d8a" + integrity sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.0" + long "^4.0.0" + +"@apollo/usage-reporting-protobuf@^4.0.0": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz#407c3d18c7fbed7a264f3b9a3812620b93499de1" + integrity sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA== + dependencies: + "@apollo/protobufjs" "1.2.7" + +"@apollo/utils.dropunuseddefinitions@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz#02b04006442eaf037f4c4624146b12775d70d929" + integrity sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg== + +"@apollo/utils.keyvadapter@~1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz#e0aceed9eba21e0d155342accfb22a9e743ced5e" + integrity sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + dataloader "^2.1.0" + keyv "^4.4.0" + +"@apollo/utils.keyvaluecache@^1.0.1", "@apollo/utils.keyvaluecache@~1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz#2bfe358c4d82f3a0950518451996758c52613f57" + integrity sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg== + dependencies: + "@apollo/utils.logger" "^1.0.0" + lru-cache "7.10.1 - 7.13.1" + +"@apollo/utils.logger@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.logger/-/utils.logger-1.0.1.tgz#aea0d1bb7ceb237f506c6bbf38f10a555b99a695" + integrity sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA== + +"@apollo/utils.printwithreducedwhitespace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz#c466299a4766eef8577a2a64c8f27712e8bd7e30" + integrity sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q== + +"@apollo/utils.removealiases@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz#75f6d83098af1fcae2d3beb4f515ad4a8452a8c1" + integrity sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A== + +"@apollo/utils.sortast@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz#93218c7008daf3e2a0725196085a33f5aab5ad07" + integrity sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA== + dependencies: + lodash.sortby "^4.7.0" + +"@apollo/utils.stripsensitiveliterals@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz#4920651f36beee8e260e12031a0c5863ad0c7b28" + integrity sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w== + +"@apollo/utils.usagereporting@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz#3c70b49e554771659576fe35381c7a4b321d27fd" + integrity sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ== + dependencies: + "@apollo/usage-reporting-protobuf" "^4.0.0" + "@apollo/utils.dropunuseddefinitions" "^1.1.0" + "@apollo/utils.printwithreducedwhitespace" "^1.1.0" + "@apollo/utils.removealiases" "1.0.0" + "@apollo/utils.sortast" "^1.1.0" + "@apollo/utils.stripsensitiveliterals" "^1.2.0" + +"@apollographql/apollo-tools@^0.5.3": + version "0.5.4" + resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz#cb3998c6cf12e494b90c733f44dd9935e2d8196c" + integrity sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw== + +"@apollographql/graphql-playground-html@1.6.29": + version "1.6.29" + resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz#a7a646614a255f62e10dcf64a7f68ead41dec453" + integrity sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA== + dependencies: + xss "^1.0.8" + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@ardatan/sync-fetch@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz#3385d3feedceb60a896518a1db857ec1e945348f" + integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== + dependencies: + node-fetch "^2.6.1" + +"@autonomys/auto-consensus@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz#477836ef1e68e9b9abf47f7e60bce6a150eb4089" + integrity sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg== + dependencies: + "@autonomys/auto-utils" "^0.2.0" + +"@autonomys/auto-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz#f30eeae96ecd2ea51f45b76c6aa006c5cb574b0e" + integrity sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw== + dependencies: + "@polkadot/api" "^11.2.1" + "@polkadot/extension-dapp" "^0.47.5" + fs "^0.0.1-security" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.2.tgz#e41928bd33475305c586f6acbbb7e3ade7a6f7f5" + integrity sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ== + +"@babel/core@^7.11.1", "@babel/core@^7.14.0", "@babel/core@^7.21.3", "@babel/core@^7.22.9": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" + integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-module-transforms" "^7.25.2" + "@babel/helpers" "^7.25.0" + "@babel/parser" "^7.25.0" + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.2" + "@babel/types" "^7.25.2" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.0.tgz#f858ddfa984350bc3d3b7f125073c9af6988f18e" + integrity sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw== + dependencies: + "@babel/types" "^7.25.0" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz#37d66feb012024f2422b762b9b2a7cfe27c7fba3" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.24.7", "@babel/helper-compilation-targets@^7.24.8", "@babel/helper-compilation-targets@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz#e1d9410a90974a3a5a66e84ff55ef62e3c02d06c" + integrity sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz#a109bf9c3d58dfed83aaf42e85633c89f43a6253" + integrity sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.0" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7", "@babel/helper-create-regexp-features-plugin@^7.25.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz#24c75974ed74183797ffd5f134169316cd1808d9" + integrity sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz#18594f789c3594acb24cfdb4a7f7b7d2e8bd912d" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.7", "@babel/helper-module-transforms@^7.24.8", "@babel/helper-module-transforms@^7.25.0", "@babel/helper-module-transforms@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + +"@babel/helper-remap-async-to-generator@^7.24.7", "@babel/helper-remap-async-to-generator@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz#d2f0fbba059a42d68e5e378feaf181ef6055365e" + integrity sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-wrap-function" "^7.25.0" + "@babel/traverse" "^7.25.0" + +"@babel/helper-replace-supers@^7.24.7", "@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7", "@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + +"@babel/helper-wrap-function@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz#dab12f0f593d6ca48c0062c28bcfb14ebe812f81" + integrity sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ== + dependencies: + "@babel/template" "^7.25.0" + "@babel/traverse" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/helpers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a" + integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw== + dependencies: + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.14.0", "@babel/parser@^7.16.8", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz#dca427b45a6c0f5c095a1c639dfe2476a3daba7f" + integrity sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.3" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz#cd0c583e01369ef51676bdb3d7b603e17d2b3f73" + integrity sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz#749bde80356b295390954643de7635e0dffabe73" + integrity sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz#e4eabdd5109acc399b38d7999b2ef66fc2022f89" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz#3a82a70e7cb7294ad2559465ebcb871dfbf078fb" + integrity sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz#d1759e84dd4b437cf9fae69b4c06c41d7625bfb7" + integrity sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-assertions@^7.20.0", "@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz#58d458271b4d3b6bb27ee6ac9525acbb259bad1c" + integrity sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.0.0", "@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz#4f6886c11e423bd69f3ce51dbf42424a5f275514" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz#b785cf35d73437f6276b1e30439a57a50747bddf" + integrity sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-remap-async-to-generator" "^7.25.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz#72a3af6c451d575842a7e9b5a02863414355bdcc" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0", "@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz#a4251d98ea0c0f399dafe1a35801eaba455bbf1f" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.0.0", "@babel/plugin-transform-block-scoping@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz#23a6ed92e6b006d26b1869b1c91d1b917c2ea2ac" + integrity sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz#256879467b57b0b68c7ddfc5b76584f398cd6834" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz#c82027ebb7010bc33c116d4b5044fbbf8c05484d" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.0.0", "@babel/plugin-transform-classes@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz#63122366527d88e0ef61b612554fe3f8c793991e" + integrity sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/traverse" "^7.25.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.0.0", "@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz#4cab3214e80bc71fae3853238d13d097b004c707" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.0.0", "@babel/plugin-transform-destructuring@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz#c828e814dbe42a2718a838c2a2e16a408e055550" + integrity sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz#5f8bf8a680f2116a7207e16288a5f974ad47a7a0" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz#dd20102897c9a2324e5adfffb67ff3610359a8ee" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz#809af7e3339466b49c034c683964ee8afb3e2604" + integrity sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz#4d8b95e3bae2b037673091aa09cd33fecd6419f4" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz#b629ee22645f412024297d5245bce425c31f9b0d" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz#176d52d8d8ed516aeae7013ee9556d540c53f197" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz#b3aa251db44959b7a7c82abcd6b4225dec7d2258" + integrity sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-flow" "^7.24.7" + +"@babel/plugin-transform-for-of@^7.0.0", "@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz#f25b33f72df1d8be76399e1b8f3f9d366eb5bc70" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.0.0", "@babel/plugin-transform-function-name@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz#b85e773097526c1a4fc4ba27322748643f26fc37" + integrity sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA== + dependencies: + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/traverse" "^7.25.1" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz#f3e9c37c0a373fee86e36880d45b3664cedaf73a" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.0.0", "@babel/plugin-transform-literals@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz#deb1ad14fc5490b9a65ed830e025bca849d8b5f3" + integrity sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz#a58fb6eda16c9dc8f9ff1c7b1ba6deb7f4694cb0" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.0.0", "@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz#3b4454fb0e302e18ba4945ba3246acb1248315df" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz#65090ed493c4a834976a3ca1cde776e6ccff32d7" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz#8f46cdc5f9e5af74f3bd019485a6cbe59685ea33" + integrity sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw== + dependencies: + "@babel/helper-module-transforms" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.0" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz#edd9f43ec549099620df7df24e7ba13b5c76efc8" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz#9042e9b856bc6b3688c0c2e4060e9e10b1460923" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz#31ff54c4e0555cc549d5816e4ab39241dfb6ab00" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz#1de4534c590af9596f53d67f52a92f12db984120" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz#bea62b538c80605d8a0fac9b40f48e97efa7de63" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz#d13a2b93435aeb8a197e115221cab266ba6e55d6" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.7" + +"@babel/plugin-transform-object-super@^7.0.0", "@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz#66eeaff7830bba945dd8989b632a40c04ed625be" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz#00eabd883d0dd6a60c1c557548785919b6e717b4" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7", "@babel/plugin-transform-optional-chaining@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz#bb02a67b60ff0406085c13d104c99a835cdf365d" + integrity sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7", "@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz#5881f0ae21018400e320fc7eb817e529d1254b68" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz#e6318746b2ae70a59d023d5cc1344a2ba7a75f5e" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz#4eec6bc701288c1fab5f72e6a4bbc9d67faca061" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.0.0", "@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz#f0d2ed8380dfbed949c42d4d790266525d63bbdc" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.1.tgz#71a665ed16ce618067d05f4a98130207349d82ae" + integrity sha512-SLV/giH/V4SmloZ6Dt40HjTGTAIkxn33TVIHxNGNvo8ezMhrxBkzisj4op1KZYPIOHFLqhv60OHvX+YRu4xbmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-react-display-name@^7.0.0", "@babel/plugin-transform-react-display-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz#9caff79836803bc666bcfe210aeb6626230c293b" + integrity sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-react-jsx-development@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz#eaee12f15a93f6496d852509a850085e6361470b" + integrity sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.24.7" + +"@babel/plugin-transform-react-jsx@^7.0.0", "@babel/plugin-transform-react-jsx@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a" + integrity sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/types" "^7.25.2" + +"@babel/plugin-transform-react-pure-annotations@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz#bdd9d140d1c318b4f28b29a00fb94f97ecab1595" + integrity sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz#021562de4534d8b4b1851759fd7af4e05d2c47f8" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz#80037fe4fbf031fc1125022178ff3938bb3743a4" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-shorthand-properties@^7.0.0", "@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz#85448c6b996e122fa9e289746140aaa99da64e73" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.0.0", "@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz#e8a38c0fde7882e0fb8f160378f74bd885cc7bb3" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz#96ae80d7a7e5251f657b5cf18f1ea6bf926f5feb" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.0.0", "@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz#a05debb4a9072ae8f985bcf77f3f215434c8f8c8" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz#383dab37fb073f5bfe6e60c654caac309f92ba1c" + integrity sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz#2023a82ced1fb4971630a2e079764502c4148e0e" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz#9073a4cd13b86ea71c3264659590ac086605bbcd" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz#dfc3d4a51127108099b19817c0963be6a2adf19f" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz#d40705d67523803a576e29c63cef6e516b858ed9" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.20.2": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.25.3.tgz#0bf4769d84ac51d1073ab4a86f00f30a3a83c67c" + integrity sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g== + dependencies: + "@babel/compat-data" "^7.25.2" + "@babel/helper-compilation-targets" "^7.25.2" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.0" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.25.0" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.25.0" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.25.0" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.8" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.0" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.25.1" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.25.2" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.8" + "@babel/plugin-transform-modules-systemjs" "^7.25.0" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.8" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.8" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.37.1" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.18.6": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.24.7.tgz#480aeb389b2a798880bf1f889199e3641cbb22dc" + integrity sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-transform-react-display-name" "^7.24.7" + "@babel/plugin-transform-react-jsx" "^7.24.7" + "@babel/plugin-transform-react-jsx-development" "^7.24.7" + "@babel/plugin-transform-react-pure-annotations" "^7.24.7" + +"@babel/preset-typescript@^7.21.0": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.13", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.0.tgz#3af9a91c1b739c569d5d80cc917280919c544ecb" + integrity sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.24.7", "@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.3.tgz#f1b901951c83eda2f3e29450ce92743783373490" + integrity sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.0" + "@babel/parser" "^7.25.3" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.2" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.21.3", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.4.4": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + +"@discordjs/collection@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-2.1.0.tgz#f327d944ab2dcf9a1f674470a481f78a120a5e3b" + integrity sha512-mLcTACtXUuVgutoznkh6hS3UFqYirDYAg5Dc1m8xn6OvPjetnUlf/xjtqnnc47OwWdaoCQnHmHh9KofhD6uRqw== + +"@discordjs/rest@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-2.3.0.tgz#06d37c7fb54a9be61134b5bbb201abd760343472" + integrity sha512-C1kAJK8aSYRv3ZwMG8cvrrW4GN0g5eMdP8AuN8ODH5DyOCbHgJspze1my3xHOAgwLJdKUbWNVyAeJ9cEdduqIg== + dependencies: + "@discordjs/collection" "^2.1.0" + "@discordjs/util" "^1.1.0" + "@sapphire/async-queue" "^1.5.2" + "@sapphire/snowflake" "^3.5.3" + "@vladfrangu/async_event_emitter" "^2.2.4" + discord-api-types "0.37.83" + magic-bytes.js "^1.10.0" + tslib "^2.6.2" + undici "6.13.0" + +"@discordjs/util@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.1.0.tgz#dcffd2b61aab8eadd66bea67811bc34fc769bb2a" + integrity sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg== + +"@emnapi/core@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.2.0.tgz#7b738e5033738132bf6af0b8fae7b05249bdcbd7" + integrity sha512-E7Vgw78I93we4ZWdYCb4DGAwRROGkMIXk7/y87UmANR+J6qsWusmC3gLt0H+O0KOt5e6O38U8oJamgbudrES/w== + dependencies: + "@emnapi/wasi-threads" "1.0.1" + tslib "^2.4.0" + +"@emnapi/runtime@^1.1.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.2.0.tgz#71d018546c3a91f3b51106530edbc056b9f2f2e3" + integrity sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz#d7ae71fd2166b1c916c6cd2d0df2ef565a2e1a5b" + integrity sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw== + dependencies: + tslib "^2.4.0" + +"@emotion/is-prop-valid@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337" + integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw== + dependencies: + "@emotion/memoize" "^0.8.1" + +"@emotion/memoize@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17" + integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== + +"@emotion/unitless@0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3" + integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== + +"@exodus/schemasafe@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@graphql-codegen/add@^5.0.0": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/add/-/add-5.0.3.tgz#1ede6bac9a93661ed7fa5808b203d079e1b1d215" + integrity sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + tslib "~2.6.0" + +"@graphql-codegen/cli@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/cli/-/cli-4.0.1.tgz#2bd494d55aaef0dfe86eefe1fa42bff81f5147fe" + integrity sha512-/H4imnGOl3hoPXLKmIiGUnXpmBmeIClSZie/YHDzD5N59cZlGGJlIOOrUlOTDpJx5JNU1MTQcRjyTToOYM5IfA== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/core" "^4.0.0" + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-tools/apollo-engine-loader" "^8.0.0" + "@graphql-tools/code-file-loader" "^8.0.0" + "@graphql-tools/git-loader" "^8.0.0" + "@graphql-tools/github-loader" "^8.0.0" + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/json-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.0.0" + "@graphql-tools/prisma-loader" "^8.0.0" + "@graphql-tools/url-loader" "^8.0.0" + "@graphql-tools/utils" "^10.0.0" + "@parcel/watcher" "^2.1.0" + "@whatwg-node/fetch" "^0.8.0" + chalk "^4.1.0" + cosmiconfig "^8.1.3" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "^5.0.2" + inquirer "^8.0.0" + is-glob "^4.0.1" + jiti "^1.17.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + micromatch "^4.0.5" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" + tslib "^2.4.0" + yaml "^1.10.0" + yargs "^17.0.0" + +"@graphql-codegen/client-preset@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/client-preset/-/client-preset-4.0.0.tgz#4c271d2abadfba6cdfdb82127b8730f270f38295" + integrity sha512-A96Vc+ZHMoBTO7bH/I/iIqCBsDiXblKqhyMQsSfq79Muvtmhjx4E9Xt4s++/zpBbe4M+46EYLlde2ZIrymSqDw== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + "@graphql-codegen/add" "^5.0.0" + "@graphql-codegen/gql-tag-operations" "4.0.0" + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-codegen/typed-document-node" "^5.0.0" + "@graphql-codegen/typescript" "^4.0.0" + "@graphql-codegen/typescript-operations" "^4.0.0" + "@graphql-codegen/visitor-plugin-common" "^4.0.0" + "@graphql-tools/documents" "^1.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-typed-document-node/core" "3.2.0" + tslib "~2.5.0" + +"@graphql-codegen/core@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/core/-/core-4.0.2.tgz#7e6ec266276f54bbf02f60599d9e518f4a59d85e" + integrity sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/schema" "^10.0.0" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" + +"@graphql-codegen/gql-tag-operations@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.0.tgz#1d712c40a2f83e02867e536709c042c20ce0e79a" + integrity sha512-LLbyxjdtK5e78xmcQiy4aXzsttR+3VE8EsiGy9++ih8/JGsqxMcXEy4MtsVGh8KGdP+LCR+jA1o6grzm2tI3cw== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-codegen/visitor-plugin-common" "4.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + tslib "~2.5.0" + +"@graphql-codegen/plugin-helpers@^5.0.0", "@graphql-codegen/plugin-helpers@^5.0.3", "@graphql-codegen/plugin-helpers@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.4.tgz#5f4c987c3f308ef1c8809ee0c43af0369867e0f6" + integrity sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw== + dependencies: + "@graphql-tools/utils" "^10.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.6.0" + +"@graphql-codegen/schema-ast@^4.0.2": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/schema-ast/-/schema-ast-4.1.0.tgz#a1e71f99346495b9272161a9ed07756e82648726" + integrity sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typed-document-node@^5.0.0": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.9.tgz#0bb72e505d4cf217790b0e761ff9da01f32d81c4" + integrity sha512-Wx6fyA4vpfIbfNTMiWUECGnjqzKkJdEbZHxVMIegiCBPzBYPAJV4mZZcildLAfm2FtZcgW4YKtFoTbnbXqPB3w== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + change-case-all "1.0.15" + tslib "~2.6.0" + +"@graphql-codegen/typescript-operations@^4.0.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript-operations/-/typescript-operations-4.2.3.tgz#794e279f54f88f2df56eee6d045d16766ec06008" + integrity sha512-6z7avSSOr03l5SyKbeDs7MzRyGwnQFSCqQm8Om5wIuoIgXVu2gXRmcJAY/I7SLdAy9xbF4Sho7XNqieFM2CAFQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/typescript" "^4.0.9" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typescript@^4.0.0", "@graphql-codegen/typescript@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@graphql-codegen/typescript/-/typescript-4.0.9.tgz#25b7999b665d86a6459f90dd22c7ddec12495fdd" + integrity sha512-0O35DMR4d/ctuHL1Zo6mRUUzp0BoszKfeWsa6sCm/g70+S98+hEfTwZNDkQHylLxapiyjssF9uw/F+sXqejqLw== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-codegen/schema-ast" "^4.0.2" + "@graphql-codegen/visitor-plugin-common" "5.3.1" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.0.tgz#b1db0138ea78b96a1f78b78ebce0443faee27fba" + integrity sha512-OFWr5tkrG4nCcE7AI9BSAwuA0VLP16uNCLssbmXpBa1rKR6b4mX+rJTQCoz47TFV5hii8yp8xaWfXVUcsNY39w== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.0" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.5.0" + +"@graphql-codegen/visitor-plugin-common@5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.3.1.tgz#d3fb5f6336cbef58e2960471422da3f3caff7f17" + integrity sha512-MktoBdNZhSmugiDjmFl1z6rEUUaqyxtFJYWnDilE7onkPgyw//O0M+TuPBJPBWdyV6J2ond0Hdqtq+rkghgSIQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.4" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@^4.0.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.1.2.tgz#674c5d5813f6c00dd65e1ee148a62536879e65e2" + integrity sha512-yk7iEAL1kYZ2Gi/pvVjdsZhul5WsYEM4Zcgh2Ev15VicMdJmPHsMhNUsZWyVJV0CaQCYpNOFlGD/11Ea3pn4GA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.6.0" + +"@graphql-tools/apollo-engine-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.1.tgz#1ec8718af6130ff8039cd653991412472cdd7e55" + integrity sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/utils" "^10.0.13" + "@whatwg-node/fetch" "^0.9.0" + tslib "^2.4.0" + +"@graphql-tools/batch-execute@^9.0.4": + version "9.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/batch-execute/-/batch-execute-9.0.4.tgz#11601409c0c33491971fc82592de12390ec58be2" + integrity sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w== + dependencies: + "@graphql-tools/utils" "^10.0.13" + dataloader "^2.2.2" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/code-file-loader@^8.0.0": + version "8.1.3" + resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-8.1.3.tgz#fb5ef691bd671fd3b0d24375f02e7d6e560b4384" + integrity sha512-Qoo8VyU0ux7k20DkzL5wFm7Y6iqlG1GQ0xA4T3EQbm4B/qbENsMc38l76QnXYIVmIlKAnD9EAvzxPEQ8iv+ZPA== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.2" + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@^10.0.4": + version "10.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-10.0.19.tgz#c99bf8d53d5c438bba49e53f8093dd7c15a286b8" + integrity sha512-y4spKkLnngkr+dCatYvqFtq3zumbnyvpMkP5W2Ooy5DnTEUeiPJQ0h5uqi3EHPEDFC+Rs/opvBdOwFOkMObmXg== + dependencies: + "@graphql-tools/batch-execute" "^9.0.4" + "@graphql-tools/executor" "^1.3.1" + "@graphql-tools/schema" "^10.0.4" + "@graphql-tools/utils" "^10.3.4" + "@repeaterjs/repeater" "^3.0.6" + dataloader "^2.2.2" + tslib "^2.5.0" + +"@graphql-tools/documents@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/documents/-/documents-1.0.1.tgz#ae19cd5667d22c23b331d3a1429443ed7130faee" + integrity sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA== + dependencies: + lodash.sortby "^4.7.0" + tslib "^2.4.0" + +"@graphql-tools/executor-graphql-ws@^1.1.2": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.2.0.tgz#d5d9a3dd092d00503d6a6576dd0dcaa99bfd122b" + integrity sha512-tSYC1QdrabWexLrYV0UI3uRGbde9WCY/bRhq6Jc+VXMZcfq6ea6pP5NEAVTfwbhUQ4xZvJABVVbKXtKb9uTg1w== + dependencies: + "@graphql-tools/utils" "^10.3.0" + "@types/ws" "^8.0.0" + graphql-ws "^5.14.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + ws "^8.17.1" + +"@graphql-tools/executor-http@^1.0.9": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-http/-/executor-http-1.1.5.tgz#c47f9bac1168b5e87e3b313e9a64da1f47874868" + integrity sha512-ZAsVGUwafPc1GapLA1yoJuRx7ihpVdAv7JDHmlI2eHRQsJnMVQwcxHnjfUb/id9YAEBrP86/s4pgEoRyad3Zng== + dependencies: + "@graphql-tools/utils" "^10.3.2" + "@repeaterjs/repeater" "^3.0.4" + "@whatwg-node/fetch" "^0.9.0" + extract-files "^11.0.0" + meros "^1.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/executor-legacy-ws@^1.0.6": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.0.tgz#45358f48fc8c49825a8d1736f05df7c447db399f" + integrity sha512-k+6ZyiaAd8SmwuzbEOfA/LVkuI1nqidhoMw+CJ7c41QGOjSMzc0VS0UZbJyeitI0n7a+uP/Meln1wjzJ2ReDtQ== + dependencies: + "@graphql-tools/utils" "^10.3.0" + "@types/ws" "^8.0.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + ws "^8.17.1" + +"@graphql-tools/executor@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/executor/-/executor-1.3.1.tgz#69de74932442a84017c49639e23e0202e169db60" + integrity sha512-tgJDdGf9SCAm64ofEMZdv925u6/J+eTmv36TGNLxgP2DpCJsZ6gnJ4A+0D28EazDXqJIvMiPd+3d+o3cCRCAnQ== + dependencies: + "@graphql-tools/utils" "^10.3.4" + "@graphql-typed-document-node/core" "3.2.0" + "@repeaterjs/repeater" "^3.0.4" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/git-loader@^8.0.0": + version "8.0.7" + resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-8.0.7.tgz#cf046e54d8cdd4992a8f60d7af743ce852d96aeb" + integrity sha512-+s23lxHR24+zLDk9/Hfl7/8Qcal8Q1yJ8armRp1fvcJyuc0RTZv97ZoZb0tArTfME74z+kJ92Mx4SfZMd7mHSQ== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.2" + "@graphql-tools/utils" "^10.0.13" + is-glob "4.0.3" + micromatch "^4.0.4" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-8.0.1.tgz#011e1f9495d42a55139a12f576cc6bb04943ecf4" + integrity sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/executor-http" "^1.0.9" + "@graphql-tools/graphql-tag-pluck" "^8.0.0" + "@graphql-tools/utils" "^10.0.13" + "@whatwg-node/fetch" "^0.9.0" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/graphql-file-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.1.tgz#03869b14cb91d0ef539df8195101279bb2df9c9e" + integrity sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA== + dependencies: + "@graphql-tools/import" "7.0.1" + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/graphql-tag-pluck@8.3.2", "@graphql-tools/graphql-tag-pluck@^8.0.0": + version "8.3.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.2.tgz#c97cc117e0179941da8eddf8a5655aff2244aa58" + integrity sha512-wJKkDjXRg2qJAVhAVE96zJGMli8Ity9mKUB7gTbvJwsAniaquRqLcTXUQ19X9qVT4ACzbbp+tAfk96b2U3tfog== + dependencies: + "@babel/core" "^7.22.9" + "@babel/parser" "^7.16.8" + "@babel/plugin-syntax-import-assertions" "^7.20.0" + "@babel/traverse" "^7.16.8" + "@babel/types" "^7.16.8" + "@graphql-tools/utils" "^10.0.13" + tslib "^2.4.0" + +"@graphql-tools/import@7.0.1": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-7.0.1.tgz#4e0d181c63350b1c926ae91b84a4cbaf03713c2c" + integrity sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w== + dependencies: + "@graphql-tools/utils" "^10.0.13" + resolve-from "5.0.0" + tslib "^2.4.0" + +"@graphql-tools/json-file-loader@^8.0.0": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-8.0.1.tgz#3fcfe869f22d8129a74369da69bf491c0bff7c2d" + integrity sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA== + dependencies: + "@graphql-tools/utils" "^10.0.13" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/load@^8.0.0": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-8.0.2.tgz#47d9916bf96dea05df27f11b53812f4327d9b6d2" + integrity sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA== + dependencies: + "@graphql-tools/schema" "^10.0.3" + "@graphql-tools/utils" "^10.0.13" + p-limit "3.1.0" + tslib "^2.4.0" + +"@graphql-tools/merge@8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.3.1.tgz#06121942ad28982a14635dbc87b5d488a041d722" + integrity sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg== + dependencies: + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + +"@graphql-tools/merge@^8.4.1": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-8.4.2.tgz#95778bbe26b635e8d2f60ce9856b388f11fe8288" + integrity sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw== + dependencies: + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.1", "@graphql-tools/merge@^9.0.6": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-9.0.6.tgz#06d3268a46f268b380665fd6a73da609c1854ca3" + integrity sha512-TmkzFTFVieHnqu9mPTF6RxAQltaprpDQnM5HMTPSyMLXnJGMTvdWejV0yORKj7DW1YSi791/sUnKf8HytepBFQ== + dependencies: + "@graphql-tools/utils" "^10.5.4" + tslib "^2.4.0" + +"@graphql-tools/mock@^8.1.2": + version "8.7.20" + resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-8.7.20.tgz#c83ae0f1940d194a3982120c9c85f3ac6b4f7f20" + integrity sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ== + dependencies: + "@graphql-tools/schema" "^9.0.18" + "@graphql-tools/utils" "^9.2.1" + fast-json-stable-stringify "^2.1.0" + tslib "^2.4.0" + +"@graphql-tools/optimize@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/optimize/-/optimize-2.0.0.tgz#7a9779d180824511248a50c5a241eff6e7a2d906" + integrity sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^8.0.0": + version "8.0.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/prisma-loader/-/prisma-loader-8.0.4.tgz#542be5567b93f1b6147ef85819eb5874969486b2" + integrity sha512-hqKPlw8bOu/GRqtYr0+dINAI13HinTVYBDqhwGAPIFmLr5s+qKskzgCiwbsckdrb5LWVFmVZc+UXn80OGiyBzg== + dependencies: + "@graphql-tools/url-loader" "^8.0.2" + "@graphql-tools/utils" "^10.0.13" + "@types/js-yaml" "^4.0.0" + "@whatwg-node/fetch" "^0.9.0" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^6.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + jose "^5.0.0" + js-yaml "^4.0.0" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^7.0.0": + version "7.0.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.1.tgz#8ac33e1d2626b6816d9283769c4a05c062b8065a" + integrity sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "^10.0.13" + tslib "^2.4.0" + +"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.2", "@graphql-tools/schema@^10.0.3", "@graphql-tools/schema@^10.0.4": + version "10.0.6" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-10.0.6.tgz#48391195ea4557ef5b6f77950bcbf529dc5f4e7e" + integrity sha512-EIJgPRGzpvDFEjVp+RF1zNNYIC36BYuIeZ514jFoJnI6IdxyVyIRDLx/ykgMdaa1pKQerpfdqDnsF4JnZoDHSQ== + dependencies: + "@graphql-tools/merge" "^9.0.6" + "@graphql-tools/utils" "^10.5.4" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/schema@^8.0.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-8.5.1.tgz#c2f2ff1448380919a330312399c9471db2580b58" + integrity sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg== + dependencies: + "@graphql-tools/merge" "8.3.1" + "@graphql-tools/utils" "8.9.0" + tslib "^2.4.0" + value-or-promise "1.0.11" + +"@graphql-tools/schema@^9.0.18": + version "9.0.19" + resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-9.0.19.tgz#c4ad373b5e1b8a0cf365163435b7d236ebdd06e7" + integrity sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w== + dependencies: + "@graphql-tools/merge" "^8.4.1" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-tools/url-loader@^8.0.0", "@graphql-tools/url-loader@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-8.0.2.tgz#ee8e10a85d82c72662f6bc6bbc7b408510a36ebd" + integrity sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ== + dependencies: + "@ardatan/sync-fetch" "^0.0.1" + "@graphql-tools/delegate" "^10.0.4" + "@graphql-tools/executor-graphql-ws" "^1.1.2" + "@graphql-tools/executor-http" "^1.0.9" + "@graphql-tools/executor-legacy-ws" "^1.0.6" + "@graphql-tools/utils" "^10.0.13" + "@graphql-tools/wrap" "^10.0.2" + "@types/ws" "^8.0.0" + "@whatwg-node/fetch" "^0.9.0" + isomorphic-ws "^5.0.0" + tslib "^2.4.0" + value-or-promise "^1.0.11" + ws "^8.12.0" + +"@graphql-tools/utils@8.9.0": + version "8.9.0" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-8.9.0.tgz#c6aa5f651c9c99e1aca55510af21b56ec296cdb7" + integrity sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.11", "@graphql-tools/utils@^10.0.13", "@graphql-tools/utils@^10.1.1", "@graphql-tools/utils@^10.3.0", "@graphql-tools/utils@^10.3.2", "@graphql-tools/utils@^10.3.4", "@graphql-tools/utils@^10.5.4": + version "10.5.4" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-10.5.4.tgz#214d815632a774f2db56bcaf7cfbd615ef858078" + integrity sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + cross-inspect "1.0.1" + dset "^3.1.2" + tslib "^2.4.0" + +"@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-9.2.1.tgz#1b3df0ef166cfa3eae706e3518b17d5922721c57" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + tslib "^2.4.0" + +"@graphql-tools/wrap@^10.0.2": + version "10.0.5" + resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-10.0.5.tgz#614b964a158887b4a644f5425b2b9a57b5751f72" + integrity sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ== + dependencies: + "@graphql-tools/delegate" "^10.0.4" + "@graphql-tools/schema" "^10.0.3" + "@graphql-tools/utils" "^10.1.1" + tslib "^2.4.0" + value-or-promise "^1.0.12" + +"@graphql-typed-document-node/core@3.2.0", "@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@headlessui/react@^1.7.18": + version "1.7.19" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.19.tgz#91c78cf5fcb254f4a0ebe96936d48421caf75f40" + integrity sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw== + dependencies: + "@tanstack/react-virtual" "^3.0.0-beta.60" + client-only "^0.0.1" + +"@headlessui/tailwindcss@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@headlessui/tailwindcss/-/tailwindcss-0.2.1.tgz#1becc201f69358a40e08bd676acc234b2cabe6e4" + integrity sha512-2+5+NZ+RzMyrVeCZOxdbvkUSssSxGvcUxphkIfSVLpRiKsj+/63T2TOL9dBYMXVfj/CGr6hMxSRInzXv6YY7sA== + +"@heroicons/react@^2.1.1": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@heroicons/react/-/react-2.1.5.tgz#1e13f34976cc542deae92353c01c8b3d7942e9ba" + integrity sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== + +"@ioredis/commands@^1.1.1": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" + integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@josephg/resolvable@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@josephg/resolvable/-/resolvable-1.0.1.tgz#69bc4db754d79e1a2f17a650d3466e038d94a5eb" + integrity sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg== + +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@kamilkisiela/fast-url-parser@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz#9d68877a489107411b953c54ea65d0658b515809" + integrity sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew== + +"@keyv/redis@~2.5.8": + version "2.5.8" + resolved "https://registry.yarnpkg.com/@keyv/redis/-/redis-2.5.8.tgz#6ba503b215f8ea66d194aa99457161e18ec046ec" + integrity sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug== + dependencies: + ioredis "^5.3.2" + +"@lerna/create@8.1.8": + version "8.1.8" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.1.8.tgz#be70d620f1d6b71e9d6b9d20049b784168b6ca19" + integrity sha512-wi72R01tgjBjzG2kjRyTHl4yCTKDfDMIXRyKz9E/FBa9SkFvUOAE4bdyY9MhEsRZmSWL7+CYE8Flv/HScRpBbA== + dependencies: + "@npmcli/arborist" "7.5.4" + "@npmcli/package-json" "5.2.0" + "@npmcli/run-script" "8.1.0" + "@nx/devkit" ">=17.1.2 < 20" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + aproba "2.0.0" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.3" + color-support "1.1.3" + columnify "1.6.0" + console-control-strings "^1.1.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "1.5.3" + execa "5.0.0" + fs-extra "^11.2.0" + get-stream "6.0.0" + git-url-parse "14.0.0" + glob-parent "6.0.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + ini "^1.3.8" + init-package-json "6.0.3" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + js-yaml "4.1.0" + libnpmpublish "9.0.9" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "11.0.2" + npm-packlist "8.0.2" + npm-registry-fetch "^17.1.0" + nx ">=17.1.2 < 20" + p-map "4.0.0" + p-map-series "2.1.0" + p-queue "6.6.2" + p-reduce "^2.1.0" + pacote "^18.0.6" + pify "5.0.0" + read-cmd-shim "4.0.0" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.4" + set-blocking "^2.0.0" + signal-exit "3.0.7" + slash "^3.0.0" + ssri "^10.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + strong-log-transformer "2.1.0" + tar "6.2.1" + temp-dir "1.0.0" + upath "2.0.1" + uuid "^10.0.0" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "5.0.1" + wide-align "1.1.5" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +"@metamask/object-multiplex@^1.1.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@metamask/object-multiplex/-/object-multiplex-1.3.0.tgz#459de4862aa5a5a025dabceadda0ffd553ca4b25" + integrity sha512-czcQeVYdSNtabd+NcYQnrM69MciiJyd1qvKH8WM2Id3C0ZiUUX5Xa/MK+/VUk633DBhVOwdNzAKIQ33lGyA+eQ== + dependencies: + end-of-stream "^1.4.4" + once "^1.4.0" + readable-stream "^2.3.3" + +"@metamask/providers@^11.1.1": + version "11.1.2" + resolved "https://registry.yarnpkg.com/@metamask/providers/-/providers-11.1.2.tgz#6fb559699dd1806ca3524f35bd0a2286946624e4" + integrity sha512-xjE4cKrGpKZjripkMKMStc0H4LXrWJPijfbaj1kKeDLVhRH2Yu3ZecV3iIhf1EIJePeA+Kx6Pcm7d0IVJ+ea7g== + dependencies: + "@metamask/object-multiplex" "^1.1.0" + "@metamask/safe-event-emitter" "^3.0.0" + detect-browser "^5.2.0" + eth-rpc-errors "^4.0.2" + extension-port-stream "^2.1.1" + fast-deep-equal "^3.1.3" + is-stream "^2.0.0" + json-rpc-engine "^6.1.0" + json-rpc-middleware-stream "^4.2.1" + pump "^3.0.0" + webextension-polyfill "^0.10.0" + +"@metamask/safe-event-emitter@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" + integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== + +"@metamask/safe-event-emitter@^3.0.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.1.tgz#e89b840a7af8097a8ed4953d8dc8470d1302d3ef" + integrity sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw== + +"@metamask/types@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@metamask/types/-/types-1.1.0.tgz#9bd14b33427932833c50c9187298804a18c2e025" + integrity sha512-EEV/GjlYkOSfSPnYXfOosxa3TqYtIW3fhg6jdw+cok/OhMgNn4wCfbENFqjytrHMU2f7ZKtBAvtiP5V8H44sSw== + +"@napi-rs/wasm-runtime@0.2.4": + version "0.2.4" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz#d27788176f250d86e498081e3c5ff48a17606918" + integrity sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ== + dependencies: + "@emnapi/core" "^1.1.0" + "@emnapi/runtime" "^1.1.0" + "@tybys/wasm-util" "^0.9.0" + +"@next/env@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.5.tgz#1d9328ab828711d3517d0a1d505acb55e5ef7ad0" + integrity sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA== + +"@next/eslint-plugin-next@^14.1.3": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz#f7e3ff3efe40a2855e5f29bc2692175f85913ba8" + integrity sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g== + dependencies: + glob "10.3.10" + +"@next/swc-darwin-arm64@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz#d0a160cf78c18731c51cc0bff131c706b3e9bb05" + integrity sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ== + +"@next/swc-darwin-x64@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz#eb832a992407f6e6352eed05a073379f1ce0589c" + integrity sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA== + +"@next/swc-linux-arm64-gnu@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz#098fdab57a4664969bc905f5801ef5a89582c689" + integrity sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA== + +"@next/swc-linux-arm64-musl@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz#243a1cc1087fb75481726dd289c7b219fa01f2b5" + integrity sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA== + +"@next/swc-linux-x64-gnu@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz#b8a2e436387ee4a52aa9719b718992e0330c4953" + integrity sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ== + +"@next/swc-linux-x64-musl@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz#cb8a9adad5fb8df86112cfbd363aab5c6d32757b" + integrity sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ== + +"@next/swc-win32-arm64-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz#81f996c1c38ea0900d4e7719cc8814be8a835da0" + integrity sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw== + +"@next/swc-win32-ia32-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz#f61c74ce823e10b2bc150e648fc192a7056422e0" + integrity sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg== + +"@next/swc-win32-x64-msvc@14.2.5": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz#ed199a920efb510cfe941cd75ed38a7be21e756f" + integrity sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g== + +"@next/third-parties@^14.2.3": + version "14.2.5" + resolved "https://registry.yarnpkg.com/@next/third-parties/-/third-parties-14.2.5.tgz#7161d266547cabfb61b8af9721f83f8b5463a572" + integrity sha512-PDRJm8RZ3rnGNporHKjcdCeZqoW8iJ5uP0clo1Z08TqJiQzuntJ66zrGYCJyqTakx62UJNOp73YsQCFo6kbYYg== + dependencies: + third-party-capital "1.0.20" + +"@nivo/annotations@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/annotations/-/annotations-0.84.0.tgz#488b18599e494ec12be8fdcb270d9ae85b8a7b91" + integrity sha512-g3n+WaZgRza7fZVQZrrxq1cLS+6vmjhWGmQqEynFmKM2f11F7gdkHLhGMYosayjZ0Sb/bMUXvBSkUbyKli7NVw== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/prop-types" "^15.7.2" + lodash "^4.17.21" + prop-types "^15.7.2" + +"@nivo/arcs@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/arcs/-/arcs-0.84.0.tgz#e080cdc7d09e4abaf7f74004f9cc5af69b80d22f" + integrity sha512-6i6CQmqdk7KZnaYmg8l0jqElQM19LJ/29WlxwVtDW43iQD0AqDzXb/eIwzZSZwf8sfGP8e8vvapkESlfkmzuPw== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-shape" "^2.0.0" + d3-shape "^1.3.5" + +"@nivo/axes@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/axes/-/axes-0.84.0.tgz#f3d288cfc3c6f77b86c557c350f1b63fe5be7b29" + integrity sha512-bC9Rx5ixGJiupTRXSnATIVRLPcx0HR8yXGBuO8GTy6K1DDnhaNWfhErnBLYbB9Sq13WQGrS2he6uvLVLd23CtA== + dependencies: + "@nivo/core" "0.84.0" + "@nivo/scales" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-format" "^1.4.1" + "@types/d3-time-format" "^2.3.1" + "@types/prop-types" "^15.7.2" + d3-format "^1.4.4" + d3-time-format "^3.0.0" + prop-types "^15.7.2" + +"@nivo/colors@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/colors/-/colors-0.84.0.tgz#03fa4e8f8ad045a916ba210d78f125122c704beb" + integrity sha512-wNG1uYyDP5Owc1Pdkz0zesdZCrPAywmSssNzQ2Aju7nVs7Ru7iHNBIvOAGgyXTe2gcrIO9VSasXWR+jEYyxN2Q== + dependencies: + "@nivo/core" "0.84.0" + "@types/d3-color" "^2.0.0" + "@types/d3-scale" "^3.2.3" + "@types/d3-scale-chromatic" "^2.0.0" + "@types/prop-types" "^15.7.2" + d3-color "^3.1.0" + d3-scale "^3.2.3" + d3-scale-chromatic "^2.0.0" + lodash "^4.17.21" + prop-types "^15.7.2" + +"@nivo/core@0.84.0", "@nivo/core@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/core/-/core-0.84.0.tgz#2bde01f2bf590e37fe98adae8ba43766d9e78c4c" + integrity sha512-HyQM4x4B7d4X9+xLPKkPxqIxhSDzbJUywGTDWHWx1daeX9VP8O+MqkTBsNsoB+tjxrbKrRJ0+ceS2w89JB+qrA== + dependencies: + "@nivo/recompose" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + "@types/d3-shape" "^2.0.0" + d3-color "^3.1.0" + d3-format "^1.4.4" + d3-interpolate "^3.0.1" + d3-scale "^3.2.3" + d3-scale-chromatic "^3.0.0" + d3-shape "^1.3.5" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/legends@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/legends/-/legends-0.84.0.tgz#d89def3427aaa509721a9b6f38c813dd38401aff" + integrity sha512-o0s1cXoIH6Km9A2zoKB8Ey99Oc1w5nymz0j8s7hR2B0EHo5HgVbYjSs2sZD7NSwLt3QM57Nzxw9VzJ+sqfV30Q== + dependencies: + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@types/d3-scale" "^3.2.3" + "@types/prop-types" "^15.7.2" + d3-scale "^3.2.3" + prop-types "^15.7.2" + +"@nivo/line@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/line/-/line-0.84.0.tgz#dd5d7d230393fce19b59eb977edeef2151ee7438" + integrity sha512-QE0JwZ7oIwMnsDQeSr1Q6iyqD2UBVLtBMdfMsJLhnlI3V62VkY98/L3o8M7+7Wy/V2UiEMJ+14C2qhXd+XLgsA== + dependencies: + "@nivo/annotations" "0.84.0" + "@nivo/axes" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/scales" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@nivo/voronoi" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + d3-shape "^1.3.5" + prop-types "^15.7.2" + +"@nivo/pie@^0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/pie/-/pie-0.84.0.tgz#b295f8f8c6da8fd74460aed6e00de64e4d58a386" + integrity sha512-yM8oe162YlOKFZkpVhSF+9J/F3rhyUc+gS9M3M+HyVqzXM3xOKjZiqd5tckgFbvTixDK6FLsSBHzH2SRij/hDQ== + dependencies: + "@nivo/arcs" "0.84.0" + "@nivo/colors" "0.84.0" + "@nivo/core" "0.84.0" + "@nivo/legends" "0.84.0" + "@nivo/tooltip" "0.84.0" + "@types/d3-shape" "^2.0.0" + d3-shape "^1.3.5" + +"@nivo/recompose@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/recompose/-/recompose-0.84.0.tgz#c65f8dcf5053d17c1cedfe88c248b3486305807f" + integrity sha512-Odb+r0pEmGt4RV020jwvngF7PxBgxS1e1sy8bWlZKc5qkm6k3eVlZNuYU+zGbDxHMigImvrx5KfUv5iUqtQBZA== + dependencies: + "@types/prop-types" "^15.7.2" + "@types/react-lifecycles-compat" "^3.0.1" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.4" + +"@nivo/scales@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/scales/-/scales-0.84.0.tgz#a066aaad24d14200bc3780575ef9be88a3b25014" + integrity sha512-Cayo9jFMpoF7Ha7eqOAucHLUG6zZLGpxiAtyZ/vTUCkRZPHmd/YMvrm8E6OyQCTBVf+aRtOKk9tQnMv8E9fWiw== + dependencies: + "@types/d3-scale" "^3.2.3" + "@types/d3-time" "^1.1.1" + "@types/d3-time-format" "^3.0.0" + d3-scale "^3.2.3" + d3-time "^1.0.11" + d3-time-format "^3.0.0" + lodash "^4.17.21" + +"@nivo/tooltip@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/tooltip/-/tooltip-0.84.0.tgz#f033798f1d09af5b2de7fa36ee91faa75543c5d8" + integrity sha512-x/6Vk4RXKHkG9q5dk4uFYwEfbMoIvJd5ahhVQ6bskuLks5FZoS6bkKoNggjxwmHbIWOVITGUXuykOfC54EWSpw== + dependencies: + "@nivo/core" "0.84.0" + "@react-spring/web" "9.4.5 || ^9.7.2" + +"@nivo/voronoi@0.84.0": + version "0.84.0" + resolved "https://registry.yarnpkg.com/@nivo/voronoi/-/voronoi-0.84.0.tgz#c4e2ae2a968d7a5901fe69b75cc865f1c35b1333" + integrity sha512-CJTb0sQWYNbfjjrCEK3W0jt1v+hqAd4fDUNJxB3SNRHEEQtF+MCr2EG3p/CWyxIb3avjF4N53/03tQpnuDwBvQ== + dependencies: + "@nivo/core" "0.84.0" + "@types/d3-delaunay" "^5.3.0" + "@types/d3-scale" "^3.2.3" + d3-delaunay "^5.3.0" + d3-scale "^3.2.3" + +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.2.0.tgz#92d7e12e4e49b23105a2555c6984d41733d65c35" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + +"@noble/curves@^1.3.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.5.0.tgz#7a9b9b507065d516e6dce275a1e31db8d2a100dd" + integrity sha512-J5EKamIHnKPyClwVrzmaf5wSdQXgdHcPZIZLu3bwnbeCx8/7NPK5q2ZBWF+5FvYGByjiQQsJYX6jfgB2wDPn3A== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + +"@noble/hashes@1.4.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.3.1", "@noble/hashes@^1.3.3": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/agent@^2.0.0": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" + integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== + dependencies: + agent-base "^7.1.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.1" + lru-cache "^10.0.1" + socks-proxy-agent "^8.0.3" + +"@npmcli/arborist@7.5.4": + version "7.5.4" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.5.4.tgz#3dd9e531d6464ef6715e964c188e0880c471ac9b" + integrity sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/fs" "^3.1.1" + "@npmcli/installed-package-contents" "^2.1.0" + "@npmcli/map-workspaces" "^3.0.2" + "@npmcli/metavuln-calculator" "^7.1.1" + "@npmcli/name-from-folder" "^2.0.0" + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.1.0" + "@npmcli/query" "^3.1.0" + "@npmcli/redact" "^2.0.0" + "@npmcli/run-script" "^8.1.0" + bin-links "^4.0.4" + cacache "^18.0.3" + common-ancestor-path "^1.0.1" + hosted-git-info "^7.0.2" + json-parse-even-better-errors "^3.0.2" + json-stringify-nice "^1.1.4" + lru-cache "^10.2.2" + minimatch "^9.0.4" + nopt "^7.2.1" + npm-install-checks "^6.2.0" + npm-package-arg "^11.0.2" + npm-pick-manifest "^9.0.1" + npm-registry-fetch "^17.0.1" + pacote "^18.0.6" + parse-conflict-json "^3.0.0" + proc-log "^4.2.0" + proggy "^2.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^3.0.1" + read-package-json-fast "^3.0.2" + semver "^7.3.7" + ssri "^10.0.6" + treeverse "^3.0.0" + walk-up-path "^3.0.1" + +"@npmcli/fs@^3.1.0", "@npmcli/fs@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" + integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^5.0.0": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.8.tgz#8ba3ff8724192d9ccb2735a2aa5380a992c5d3d1" + integrity sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ== + dependencies: + "@npmcli/promise-spawn" "^7.0.0" + ini "^4.1.3" + lru-cache "^10.0.1" + npm-pick-manifest "^9.0.0" + proc-log "^4.0.0" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^4.0.0" + +"@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz#63048e5f6e40947a3a88dcbcb4fd9b76fdd37c17" + integrity sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/map-workspaces@^3.0.2": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.6.tgz#27dc06c20c35ef01e45a08909cab9cb3da08cea6" + integrity sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA== + dependencies: + "@npmcli/name-from-folder" "^2.0.0" + glob "^10.2.2" + minimatch "^9.0.0" + read-package-json-fast "^3.0.0" + +"@npmcli/metavuln-calculator@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.1.1.tgz#4d3b6c3192f72bc8ad59476de0da939c33877fcf" + integrity sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g== + dependencies: + cacache "^18.0.0" + json-parse-even-better-errors "^3.0.0" + pacote "^18.0.0" + proc-log "^4.1.0" + semver "^7.3.5" + +"@npmcli/name-from-folder@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/package-json@5.2.0", "@npmcli/package-json@^5.0.0", "@npmcli/package-json@^5.1.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.2.0.tgz#a1429d3111c10044c7efbfb0fce9f2c501f4cfad" + integrity sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ== + dependencies: + "@npmcli/git" "^5.0.0" + glob "^10.2.2" + hosted-git-info "^7.0.0" + json-parse-even-better-errors "^3.0.0" + normalize-package-data "^6.0.0" + proc-log "^4.0.0" + semver "^7.5.3" + +"@npmcli/promise-spawn@^7.0.0": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz#1d53d34ffeb5d151bfa8ec661bcccda8bbdfd532" + integrity sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ== + dependencies: + which "^4.0.0" + +"@npmcli/query@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.1.0.tgz#bc202c59e122a06cf8acab91c795edda2cdad42c" + integrity sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ== + dependencies: + postcss-selector-parser "^6.0.10" + +"@npmcli/redact@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/redact/-/redact-2.0.1.tgz#95432fd566e63b35c04494621767a4312c316762" + integrity sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw== + +"@npmcli/run-script@8.1.0", "@npmcli/run-script@^8.0.0", "@npmcli/run-script@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-8.1.0.tgz#a563e5e29b1ca4e648a6b1bbbfe7220b4bfe39fc" + integrity sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg== + dependencies: + "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" + "@npmcli/promise-spawn" "^7.0.0" + node-gyp "^10.0.0" + proc-log "^4.0.0" + which "^4.0.0" + +"@nrwl/devkit@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-19.6.1.tgz#8fd3d703088d97c32dc34eb1f13acefaf6bac69b" + integrity sha512-aoS5RwtUqd8gUWgubOtQ4kzqO8UVjYxtecutvSnDN6gKyG2ylZcDR2OnWL+AB7HbVgRjm/6/QALdcaev9Ljd8w== + dependencies: + "@nx/devkit" "19.6.1" + +"@nrwl/tao@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-19.6.1.tgz#a1082af4bbfcef652aff1105164f77eaa77abd81" + integrity sha512-nl/NcBRkHr5r0drCq9ROPcKx/Q7SioPvNMl7edo/PdjdKcmJ3gXqvgTxPjwbYH2/ScNX2yjm353qrNyffSs6Rw== + dependencies: + nx "19.6.1" + tslib "^2.3.0" + +"@nx/devkit@19.6.1", "@nx/devkit@>=17.1.2 < 20": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-19.6.1.tgz#f4f7ad5bca8f017b68809ad9c749cdaf756e7fba" + integrity sha512-FGfPM9R7QdEGllNr7Jlx81QbiufNNRHehrJ/4aqftzHWT5ptYmH45bPnd/Wu0qDK4rg1c4PMrjEOLpyCAFXg1Q== + dependencies: + "@nrwl/devkit" "19.6.1" + ejs "^3.1.7" + enquirer "~2.3.6" + ignore "^5.0.4" + minimatch "9.0.3" + semver "^7.5.3" + tmp "~0.2.1" + tslib "^2.3.0" + yargs-parser "21.1.1" + +"@nx/nx-darwin-arm64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-19.6.1.tgz#d21bb4b19387a0aeb724c86d80f59127dbf900c8" + integrity sha512-xxAdyIUckvsIID0BnYCHM86s35n0tDsBYuoqpOFG+22PEk0bzoSVOyxeJQ5UKDCvXe5wa2MbcgyhbHKhj7Osnw== + +"@nx/nx-darwin-x64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-19.6.1.tgz#cbc95ac98ca55dd9c0a522012c7b4a1cd2100483" + integrity sha512-ISwb09KKtAydrAbyxwOjce8pdVzOSuzC068Uo8TcHp2Xao2b+N9zmkQquLzC+G4dgwxDxxVYoZcuZ6urRFV7Cg== + +"@nx/nx-freebsd-x64@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-19.6.1.tgz#eada3946daf9d9aad2868636a90428b5ce3394a8" + integrity sha512-IzR+K0tW8A6kl95V6k8Pp8tknjiDGOUB+E2p8YN7UlYPP7gaBK+rojERF4V7jD5pEvSxrKMwuJoD+WH/b52TNA== + +"@nx/nx-linux-arm-gnueabihf@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-19.6.1.tgz#49ebe76eb63b025238309a915af0822e82f37552" + integrity sha512-8mHceXwpBIp1gF+hSKGg7XRYpcB9QN8YROSn4dzvDoUMEusOE27jzXKKS9dRkjdULYENKDkv0NbuhcoxoWx+KA== + +"@nx/nx-linux-arm64-gnu@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-19.6.1.tgz#24c95a34490face531736f97da3cbf7c3cc89988" + integrity sha512-eqxWqhUrFEz3Rnoz9RKhMlrCY6AF0AVGgTGto5TdB16kIgTA53i18bf9jaq2MSBZQHE1kySVUgPfxQQxPzWKaA== + +"@nx/nx-linux-arm64-musl@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-19.6.1.tgz#502ee375bb01b0f5fcd9e6c921c0c43679320886" + integrity sha512-3lfazErzsJgO8G2dEcuGmtJoi9fQ3CPvLA+RiE7CKBQ4a/5Zb1o2rqlZ1YTfnfiUcOh4knt7gWcXm16eSKbLoQ== + +"@nx/nx-linux-x64-gnu@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.6.1.tgz#066dab4382b05eee56c7c1ebbf249fe4077f363e" + integrity sha512-Rt4NkuJZpRyVunRoCC5shaUqPk6wrMH3x55WEb0HBzlKjkItgrFpPInPS4hp9hFsJ8vX2AkBX2qrTWRaLMbOyQ== + +"@nx/nx-linux-x64-musl@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-19.6.1.tgz#858b1d5c1ed756e32bff3d0505ce2f263ca8dff5" + integrity sha512-P0RnxCfcgb6t4l+WWVNlTDzqpcM/Du77EfgvNc3Z1mRLQMP4E5TkLt8J/aTTjh2GwtnP95oxQSOYBzg+sJwNPQ== + +"@nx/nx-win32-arm64-msvc@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-19.6.1.tgz#5a3b372cd9a95eb57e96797a24fb2b6c3da15a29" + integrity sha512-CFaRqK+Sv7Gi7d+WUJqFLV0t4D2ImnO7BoeZWnT6oEfIl94hikCtbu4693Fsu7eg37JMa+4xwdAUvOOq1rFhJg== + +"@nx/nx-win32-x64-msvc@19.6.1": + version "19.6.1" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-19.6.1.tgz#ad9cd32c13eed36e50063522773ce3b7b7e6bbfb" + integrity sha512-l2vAK0/2c9oEAqI0KdeJkkkZlr72LeWV5zds/FIuFHBRyweJanplRelhD7t199BnGr2FfulOpFrc1TyYzvntkg== + +"@octokit/auth-token@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== + +"@octokit/core@^4.2.1": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" + integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^18.0.0": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== + +"@octokit/plugin-enterprise-rest@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== + dependencies: + "@octokit/types" "^10.0.0" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.8" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@19.0.11": + version "19.0.11" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" + integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@panva/hkdf@^1.0.2": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.2.1.tgz#cb0d111ef700136f4580349ff0226bf25c853f23" + integrity sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw== + +"@parcel/watcher-android-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz#c2c19a3c442313ff007d2d7a9c2c1dd3e1c9ca84" + integrity sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== + +"@parcel/watcher-darwin-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz#c817c7a3b4f3a79c1535bfe54a1c2818d9ffdc34" + integrity sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== + +"@parcel/watcher-darwin-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz#1a3f69d9323eae4f1c61a5f480a59c478d2cb020" + integrity sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== + +"@parcel/watcher-freebsd-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz#0d67fef1609f90ba6a8a662bc76a55fc93706fc8" + integrity sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== + +"@parcel/watcher-linux-arm-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz#ce5b340da5829b8e546bd00f752ae5292e1c702d" + integrity sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== + +"@parcel/watcher-linux-arm64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz#6d7c00dde6d40608f9554e73998db11b2b1ff7c7" + integrity sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== + +"@parcel/watcher-linux-arm64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz#bd39bc71015f08a4a31a47cd89c236b9d6a7f635" + integrity sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== + +"@parcel/watcher-linux-x64-glibc@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz#0ce29966b082fb6cdd3de44f2f74057eef2c9e39" + integrity sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== + +"@parcel/watcher-linux-x64-musl@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz#d2ebbf60e407170bb647cd6e447f4f2bab19ad16" + integrity sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== + +"@parcel/watcher-win32-arm64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz#eb4deef37e80f0b5e2f215dd6d7a6d40a85f8adc" + integrity sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== + +"@parcel/watcher-win32-ia32@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz#94fbd4b497be39fd5c8c71ba05436927842c9df7" + integrity sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== + +"@parcel/watcher-win32-x64@2.4.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz#4bf920912f67cae5f2d264f58df81abfea68dadf" + integrity sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== + +"@parcel/watcher@^2.1.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.4.1.tgz#a50275151a1bb110879c6123589dba90c19f1bf8" + integrity sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.4.1" + "@parcel/watcher-darwin-arm64" "2.4.1" + "@parcel/watcher-darwin-x64" "2.4.1" + "@parcel/watcher-freebsd-x64" "2.4.1" + "@parcel/watcher-linux-arm-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-glibc" "2.4.1" + "@parcel/watcher-linux-arm64-musl" "2.4.1" + "@parcel/watcher-linux-x64-glibc" "2.4.1" + "@parcel/watcher-linux-x64-musl" "2.4.1" + "@parcel/watcher-win32-arm64" "2.4.1" + "@parcel/watcher-win32-ia32" "2.4.1" + "@parcel/watcher-win32-x64" "2.4.1" + +"@peculiar/asn1-schema@^2.3.8": + version "2.3.13" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz#ec8509cdcbc0da3abe73fd7e690556b57a61b8f4" + integrity sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g== + dependencies: + asn1js "^3.0.5" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz#9e57174c02c1291051c553600347e12b81469e10" + integrity sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.3.5" + tslib "^2.6.2" + webcrypto-core "^1.8.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + +"@polkadot-api/client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/client/-/client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#5d6b863f63f5c6ecd4183fcf0c5c84dd349f7627" + integrity sha512-0fqK6pUKcGHSG2pBvY+gfSS+1mMdjd/qRygAcKI5d05tKsnZLRnmhb9laDguKmGEIB0Bz9vQqNK3gIN/cfvVwg== + dependencies: + "@polkadot-api/metadata-builders" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/json-rpc-provider-proxy@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz#bb5c943642cdf0ec7bc48c0a2647558b9fcd7bdb" + integrity sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg== + +"@polkadot-api/json-rpc-provider-proxy@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#cc28fb801db6a47824261a709ab924ec6951eb96" + integrity sha512-0hZ8vtjcsyCX8AyqP2sqUHa1TFFfxGWmlXJkit0Nqp9b32MwZqn5eaUAiV2rNuEpoglKOdKnkGtUF8t5MoodKw== + +"@polkadot-api/json-rpc-provider@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz#333645d40ccd9bccfd1f32503f17e4e63e76e297" + integrity sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA== + +"@polkadot-api/json-rpc-provider@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#2f71bfb192d28dd4c400ef8b1c5f934c676950f3" + integrity sha512-EaUS9Fc3wsiUr6ZS43PQqaRScW7kM6DYbuM/ou0aYjm8N9MBqgDbGm2oL6RE1vAVmOfEuHcXZuZkhzWtyvQUtA== + +"@polkadot-api/metadata-builders@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz#a76b48febef9ea72be8273d889e2677101045a05" + integrity sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA== + dependencies: + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/utils" "0.0.1" + +"@polkadot-api/metadata-builders@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#085db2a3c7b100626b2fae3be35a32a24ea7714f" + integrity sha512-BD7rruxChL1VXt0icC2gD45OtT9ofJlql0qIllHSRYgama1CR2Owt+ApInQxB+lWqM+xNOznZRpj8CXNDvKIMg== + dependencies: + "@polkadot-api/substrate-bindings" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + +"@polkadot-api/observable-client@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz#472045ea06a2bc4bccdc2db5c063eadcbf6f5351" + integrity sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A== + dependencies: + "@polkadot-api/metadata-builders" "0.0.1" + "@polkadot-api/substrate-bindings" "0.0.1" + "@polkadot-api/substrate-client" "0.0.1" + "@polkadot-api/utils" "0.0.1" + +"@polkadot-api/substrate-bindings@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz#c4b7f4d6c3672d2c15cbc6c02964f014b73cbb0b" + integrity sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg== + dependencies: + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" + +"@polkadot-api/substrate-bindings@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#f836a554a9ead6fb6356079c725cd53f87238932" + integrity sha512-N4vdrZopbsw8k57uG58ofO7nLXM4Ai7835XqakN27MkjXMp5H830A1KJE0L9sGQR7ukOCDEIHHcwXVrzmJ/PBg== + dependencies: + "@noble/hashes" "^1.3.1" + "@polkadot-api/utils" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@scure/base" "^1.1.1" + scale-ts "^1.6.0" + +"@polkadot-api/substrate-client@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz#0e8010a0abe2fb47d6fa7ab94e45e1d0de083314" + integrity sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg== + +"@polkadot-api/substrate-client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/substrate-client/-/substrate-client-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#55ae463f4143495e328465dd16b03e71663ef4c4" + integrity sha512-lcdvd2ssUmB1CPzF8s2dnNOqbrDa+nxaaGbuts+Vo8yjgSKwds2Lo7Oq+imZN4VKW7t9+uaVcKFLMF7PdH0RWw== + +"@polkadot-api/utils@0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1.tgz#908b22becac705149d7cc946532143d0fb003bfc" + integrity sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw== + +"@polkadot-api/utils@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0": + version "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + resolved "https://registry.yarnpkg.com/@polkadot-api/utils/-/utils-0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0.tgz#759698dcf948745ea37cc5ab6abd49a00f1b0c31" + integrity sha512-0CYaCjfLQJTCRCiYvZ81OncHXEKPzAexCMoVloR+v2nl/O2JRya/361MtPkeNLC6XBoaEgLAG9pWQpH3WePzsw== + +"@polkadot/api-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-10.13.1.tgz#dd3670a2f1a581c38b857ad3b0805b6581099c63" + integrity sha512-IAKaCp19QxgOG4HKk9RAgUgC/VNVqymZ2GXfMNOZWImZhxRIbrK+raH5vN2MbWwtVHpjxyXvGsd1RRhnohI33A== + dependencies: + "@polkadot/api-base" "10.13.1" + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/api-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-augment/-/api-augment-11.3.1.tgz#c7deeac438b017613e244c25505216a9d4c3977e" + integrity sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA== + dependencies: + "@polkadot/api-base" "11.3.1" + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/api-base@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-10.13.1.tgz#efed5bb31e38244b6a68ce56138b97ad82101426" + integrity sha512-Okrw5hjtEjqSMOG08J6qqEwlUQujTVClvY1/eZkzKwNzPelWrtV6vqfyJklB7zVhenlxfxqhZKKcY7zWSW/q5Q== + dependencies: + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-base@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-base/-/api-base-11.3.1.tgz#6c74c88d4a4b3d22344bb8715a135493f5a3dd33" + integrity sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ== + dependencies: + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-derive@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-10.13.1.tgz#d8827ee83124f3b3f664c415cdde9c6b909e5145" + integrity sha512-ef0H0GeCZ4q5Om+c61eLLLL29UxFC2/u/k8V1K2JOIU+2wD5LF7sjAoV09CBMKKHfkLenRckVk2ukm4rBqFRpg== + dependencies: + "@polkadot/api" "10.13.1" + "@polkadot/api-augment" "10.13.1" + "@polkadot/api-base" "10.13.1" + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api-derive@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api-derive/-/api-derive-11.3.1.tgz#3617655b6dab56d5beb8efbf7383ab457370df35" + integrity sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA== + dependencies: + "@polkadot/api" "11.3.1" + "@polkadot/api-augment" "11.3.1" + "@polkadot/api-base" "11.3.1" + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api@10.13.1", "@polkadot/api@^10.12.4": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-10.13.1.tgz#47586c070d3fe13a0acc93a8aa9c3a53791284fb" + integrity sha512-YrKWR4TQR5CDyGkF0mloEUo7OsUA+bdtENpJGOtNavzOQUDEbxFE0PVzokzZfVfHhHX2CojPVmtzmmLxztyJkg== + dependencies: + "@polkadot/api-augment" "10.13.1" + "@polkadot/api-base" "10.13.1" + "@polkadot/api-derive" "10.13.1" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/rpc-core" "10.13.1" + "@polkadot/rpc-provider" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/types-known" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/api@11.3.1", "@polkadot/api@^11.2.1", "@polkadot/api@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/api/-/api-11.3.1.tgz#6092aea8147ea03873b3f383cceae0390a67f71d" + integrity sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA== + dependencies: + "@polkadot/api-augment" "11.3.1" + "@polkadot/api-base" "11.3.1" + "@polkadot/api-derive" "11.3.1" + "@polkadot/keyring" "^12.6.2" + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/rpc-core" "11.3.1" + "@polkadot/rpc-provider" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/types-known" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + eventemitter3 "^5.0.1" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/extension-dapp@^0.46.5", "@polkadot/extension-dapp@^0.46.7": + version "0.46.9" + resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.46.9.tgz#b80231a2dd04744d8bdfff41bcb7223316f353e2" + integrity sha512-y5udSeQ/X9MEoyjlpTcCn0UAEjZ2jjy6U3V/jiVFQo5vBKhdqAhN1oN8X5c4yWurmhYM/7oibImxAjEoXuwH+Q== + dependencies: + "@polkadot/extension-inject" "0.46.9" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-dapp@^0.47.5": + version "0.47.6" + resolved "https://registry.yarnpkg.com/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz#0ab43d95cb6ad7b007510259e2a94186b49baff7" + integrity sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng== + dependencies: + "@polkadot/extension-inject" "0.47.6" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-inject@0.46.9", "@polkadot/extension-inject@^0.46.5", "@polkadot/extension-inject@^0.46.7": + version "0.46.9" + resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.46.9.tgz#d4a8dbe27b2fda945d6410d0e22f6110a6befae1" + integrity sha512-m0jnrs9+jEOpMH6OUNl7nHpz9SFFWK9LzuqB8T3htEE3RUYPL//SLCPyEKxAAgHu7F8dgkUHssAWQfANofALCQ== + dependencies: + "@polkadot/api" "^10.12.4" + "@polkadot/rpc-provider" "^10.12.4" + "@polkadot/types" "^10.12.4" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/extension-inject@0.47.6": + version "0.47.6" + resolved "https://registry.yarnpkg.com/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz#a729d00215dd90d8ba77f6103018563ca187e060" + integrity sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g== + dependencies: + "@polkadot/api" "^11.3.1" + "@polkadot/rpc-provider" "^11.3.1" + "@polkadot/types" "^11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/keyring@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-12.6.2.tgz#6067e6294fee23728b008ac116e7e9db05cecb9b" + integrity sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw== + dependencies: + "@polkadot/util" "12.6.2" + "@polkadot/util-crypto" "12.6.2" + tslib "^2.6.2" + +"@polkadot/keyring@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-13.0.2.tgz#05a655eb06c965ae5ee5f181d25916797ea50849" + integrity sha512-NeLbhyKDT5W8LI9seWTZGePxNTOVpDhv2018HSrEDwJq9Ie0C4TZhUf3KNERCkSveuThXjfQJMs+1CF33ZXPWw== + dependencies: + "@polkadot/util" "13.0.2" + "@polkadot/util-crypto" "13.0.2" + tslib "^2.6.2" + +"@polkadot/networks@12.6.2", "@polkadot/networks@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-12.6.2.tgz#791779fee1d86cc5b6cd371858eea9b7c3f8720d" + integrity sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w== + dependencies: + "@polkadot/util" "12.6.2" + "@substrate/ss58-registry" "^1.44.0" + tslib "^2.6.2" + +"@polkadot/networks@13.0.2", "@polkadot/networks@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-13.0.2.tgz#0f8fc896b8fb2141212b6448739f4a00bc72b29c" + integrity sha512-ABAL+vug/gIwkdFEzeh87JoJd0YKrxSYg/HjUrZ+Zis2ucxQEKpvtCpJ34ku+YrjacBfVqIAkkwd3ZdIPGq9aQ== + dependencies: + "@polkadot/util" "13.0.2" + "@substrate/ss58-registry" "^1.46.0" + tslib "^2.6.2" + +"@polkadot/react-identicon@^3.6.5": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/react-identicon/-/react-identicon-3.9.1.tgz#434e595ec50cdbef2b3cd50deebc32faa40291d4" + integrity sha512-4cMGPNc3KZdaEqZbrhfvuwPg4jXT29hIadBjKVbyQZAuJzwzcIiFpr9JvQ8fLHE1elFr5dbQqGsHB/iZRyzhyw== + dependencies: + "@polkadot/keyring" "^13.0.2" + "@polkadot/ui-settings" "3.9.1" + "@polkadot/ui-shared" "3.9.1" + "@polkadot/util" "^13.0.2" + "@polkadot/util-crypto" "^13.0.2" + ethereum-blockies-base64 "^1.0.2" + jdenticon "3.2.0" + react-copy-to-clipboard "^5.1.0" + styled-components "^6.1.1" + tslib "^2.6.2" + +"@polkadot/rpc-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-10.13.1.tgz#83317b46c5ab86104cca2bdc336199db0c25b798" + integrity sha512-iLsWUW4Jcx3DOdVrSHtN0biwxlHuTs4QN2hjJV0gd0jo7W08SXhWabZIf9mDmvUJIbR7Vk+9amzvegjRyIf5+A== + dependencies: + "@polkadot/rpc-core" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/rpc-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz#b589ef5b7ab578cf274077604543071ce9889301" + integrity sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ== + dependencies: + "@polkadot/rpc-core" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/rpc-core@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-10.13.1.tgz#a7ea9db8997b68aa6724f28ba76125a73e925575" + integrity sha512-eoejSHa+/tzHm0vwic62/aptTGbph8vaBpbvLIK7gd00+rT813ROz5ckB1CqQBFB23nHRLuzzX/toY8ID3xrKw== + dependencies: + "@polkadot/rpc-augment" "10.13.1" + "@polkadot/rpc-provider" "10.13.1" + "@polkadot/types" "10.13.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/rpc-core@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz#c23e23ee5c403c4edb207d603ae4dc16e69bc710" + integrity sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ== + dependencies: + "@polkadot/rpc-augment" "11.3.1" + "@polkadot/rpc-provider" "11.3.1" + "@polkadot/types" "11.3.1" + "@polkadot/util" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/rpc-provider@10.13.1", "@polkadot/rpc-provider@^10.12.4": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-10.13.1.tgz#7e17f7be7d9a104b797d8f5aa8f1ed69f800f841" + integrity sha512-oJ7tatVXYJ0L7NpNiGd69D558HG5y5ZDmH2Bp9Dd4kFTQIiV8A39SlWwWUPCjSsen9lqSvvprNLnG/VHTpenbw== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "10.13.1" + "@polkadot/types-support" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" + eventemitter3 "^5.0.1" + mock-socket "^9.3.1" + nock "^13.5.0" + tslib "^2.6.2" + optionalDependencies: + "@substrate/connect" "0.8.8" + +"@polkadot/rpc-provider@11.3.1", "@polkadot/rpc-provider@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz#1d1289bf42d065b5f04f9baa46ef90d96940819e" + integrity sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types" "11.3.1" + "@polkadot/types-support" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + "@polkadot/x-fetch" "^12.6.2" + "@polkadot/x-global" "^12.6.2" + "@polkadot/x-ws" "^12.6.2" + eventemitter3 "^5.0.1" + mock-socket "^9.3.1" + nock "^13.5.0" + tslib "^2.6.2" + optionalDependencies: + "@substrate/connect" "0.8.10" + +"@polkadot/types-augment@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-10.13.1.tgz#8f39a46a1a3e100be03cbae06f43a043cb25c337" + integrity sha512-TcrLhf95FNFin61qmVgOgayzQB/RqVsSg9thAso1Fh6pX4HSbvI35aGPBAn3SkA6R+9/TmtECirpSNLtIGFn0g== + dependencies: + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-augment@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-augment/-/types-augment-11.3.1.tgz#1f7f553f0ca6eb8fbc0306901edc045fe18729e1" + integrity sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw== + dependencies: + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-codec@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-10.13.1.tgz#f70cd617160b467685ef3ce5195a04142255ba7b" + integrity sha512-AiQ2Vv2lbZVxEdRCN8XSERiWlOWa2cTDLnpAId78EnCtx4HLKYQSd+Jk9Y4BgO35R79mchK4iG+w6gZ+ukG2bg== + dependencies: + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-codec@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-codec/-/types-codec-11.3.1.tgz#2767cf482cd49afdd5dce9701615f68ec59cec5e" + integrity sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ== + dependencies: + "@polkadot/util" "^12.6.2" + "@polkadot/x-bigint" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-create@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-10.13.1.tgz#99470816d0d2ca32a6a5ce6d701b4199e8700f66" + integrity sha512-Usn1jqrz35SXgCDAqSXy7mnD6j4RvB4wyzTAZipFA6DGmhwyxxIgOzlWQWDb+1PtPKo9vtMzen5IJ+7w5chIeA== + dependencies: + "@polkadot/types-codec" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-create@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-create/-/types-create-11.3.1.tgz#3ac2c8283f61555f9e572ca30e3485b95a0a54e2" + integrity sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w== + dependencies: + "@polkadot/types-codec" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-known@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-10.13.1.tgz#8cca2d3f2c4ef67849f66ba4a35856063ec61f5f" + integrity sha512-uHjDW05EavOT5JeU8RbiFWTgPilZ+odsCcuEYIJGmK+es3lk/Qsdns9Zb7U7NJl7eJ6OWmRtyrWsLs+bU+jjIQ== + dependencies: + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-known@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-known/-/types-known-11.3.1.tgz#fc34ed29ac2474db6b66805a15d12008226346bb" + integrity sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ== + dependencies: + "@polkadot/networks" "^12.6.2" + "@polkadot/types" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-support@10.13.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-10.13.1.tgz#d4b58c8d9bcbb8e897a255d9a66c217dcaa6ead4" + integrity sha512-4gEPfz36XRQIY7inKq0HXNVVhR6HvXtm7yrEmuBuhM86LE0lQQBkISUSgR358bdn2OFSLMxMoRNoh3kcDvdGDQ== + dependencies: + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types-support@11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types-support/-/types-support-11.3.1.tgz#dee02a67784baa13177fe9957f5d8d62e8a7e570" + integrity sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA== + dependencies: + "@polkadot/util" "^12.6.2" + tslib "^2.6.2" + +"@polkadot/types@10.13.1", "@polkadot/types@^10.12.4", "@polkadot/types@^10.9.1": + version "10.13.1" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-10.13.1.tgz#979d652dc11af9cb8b32e7a55839e9762532755d" + integrity sha512-Hfvg1ZgJlYyzGSAVrDIpp3vullgxrjOlh/CSThd/PI4TTN1qHoPSFm2hs77k3mKkOzg+LrWsLE0P/LP2XddYcw== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "10.13.1" + "@polkadot/types-codec" "10.13.1" + "@polkadot/types-create" "10.13.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/types@11.3.1", "@polkadot/types@^11.3.1": + version "11.3.1" + resolved "https://registry.yarnpkg.com/@polkadot/types/-/types-11.3.1.tgz#bab61b701218158099e3f548d20efc27cbf1287f" + integrity sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ== + dependencies: + "@polkadot/keyring" "^12.6.2" + "@polkadot/types-augment" "11.3.1" + "@polkadot/types-codec" "11.3.1" + "@polkadot/types-create" "11.3.1" + "@polkadot/util" "^12.6.2" + "@polkadot/util-crypto" "^12.6.2" + rxjs "^7.8.1" + tslib "^2.6.2" + +"@polkadot/ui-settings@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/ui-settings/-/ui-settings-3.9.1.tgz#3ee2e15754da87c016b38e5710ad9c0ffd591b85" + integrity sha512-G6WYluS3oE9wiK4KLK1Hi+lr0ZII65x7EcmRoqaR5BBKAr2cBnLAOfBiK5gUchntY7cw1ukXRmcCJmNmCFvwzg== + dependencies: + "@polkadot/networks" "^13.0.2" + "@polkadot/util" "^13.0.2" + eventemitter3 "^5.0.1" + store "^2.0.12" + tslib "^2.6.2" + +"@polkadot/ui-shared@3.9.1": + version "3.9.1" + resolved "https://registry.yarnpkg.com/@polkadot/ui-shared/-/ui-shared-3.9.1.tgz#20bb38a73c03b392cbda53e192485ba9d382552a" + integrity sha512-bg7t4NKy2yyuK/0h1ahTJiK2Ooe1b+qNmkPfcY3b96o9lgzPiUPYFLg+pVIS/Cu3lULd0dzZEqi4IPl63tAt+w== + dependencies: + colord "^2.9.3" + tslib "^2.6.2" + +"@polkadot/util-crypto@12.6.2", "@polkadot/util-crypto@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz#d2d51010e8e8ca88951b7d864add797dad18bbfc" + integrity sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "12.6.2" + "@polkadot/util" "12.6.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-randomvalues" "12.6.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util-crypto@13.0.2", "@polkadot/util-crypto@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-13.0.2.tgz#fee602bcb39e9424300410f4144f170ee2a29292" + integrity sha512-woUsJJ6zd/caL7U+D30a5oM/+WK9iNI00Y8aNUHSj6Zq/KPzK9uqDBaLGWwlgrejoMQkxxiU2X0f2LzP15AtQg== + dependencies: + "@noble/curves" "^1.3.0" + "@noble/hashes" "^1.3.3" + "@polkadot/networks" "13.0.2" + "@polkadot/util" "13.0.2" + "@polkadot/wasm-crypto" "^7.3.2" + "@polkadot/wasm-util" "^7.3.2" + "@polkadot/x-bigint" "13.0.2" + "@polkadot/x-randomvalues" "13.0.2" + "@scure/base" "^1.1.5" + tslib "^2.6.2" + +"@polkadot/util@12.6.2", "@polkadot/util@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-12.6.2.tgz#9396eff491221e1f0fd28feac55fc16ecd61a8dc" + integrity sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw== + dependencies: + "@polkadot/x-bigint" "12.6.2" + "@polkadot/x-global" "12.6.2" + "@polkadot/x-textdecoder" "12.6.2" + "@polkadot/x-textencoder" "12.6.2" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + tslib "^2.6.2" + +"@polkadot/util@13.0.2", "@polkadot/util@^13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-13.0.2.tgz#f0a2572d74730fda8dfd690b60d53c131a688f3b" + integrity sha512-/6bS9sfhJLhs8QuqWaR1eRapzfDdGC5XAQZEPL9NN5sTTA7HxWos8rVleai0UERm8QUMabjZ9rK9KpzbXl7ojg== + dependencies: + "@polkadot/x-bigint" "13.0.2" + "@polkadot/x-global" "13.0.2" + "@polkadot/x-textdecoder" "13.0.2" + "@polkadot/x-textencoder" "13.0.2" + "@types/bn.js" "^5.1.5" + bn.js "^5.2.1" + tslib "^2.6.2" + +"@polkadot/util@^10.2.1": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.4.2.tgz#df41805cb27f46b2b4dad24c371fa2a68761baa1" + integrity sha512-0r5MGICYiaCdWnx+7Axlpvzisy/bi1wZGXgCSw5+ZTyPTOqvsYRqM2X879yxvMsGfibxzWqNzaiVjToz1jvUaA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-bigint" "10.4.2" + "@polkadot/x-global" "10.4.2" + "@polkadot/x-textdecoder" "10.4.2" + "@polkadot/x-textencoder" "10.4.2" + "@types/bn.js" "^5.1.1" + bn.js "^5.2.1" + +"@polkadot/wasm-bridge@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz#e1b01906b19e06cbca3d94f10f5666f2ae0baadc" + integrity sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-asmjs@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz#c6d41bc4b48b5359d57a24ca3066d239f2d70a34" + integrity sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q== + dependencies: + tslib "^2.6.2" + +"@polkadot/wasm-crypto-init@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz#7e1fe79ba978fb0a4a0f74a92d976299d38bc4b8" + integrity sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto-wasm@7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz#44e08ed5cf6499ce4a3aa7247071a5d01f6a74f4" + integrity sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw== + dependencies: + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-crypto@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz#61bbcd9e591500705c8c591e6aff7654bdc8afc9" + integrity sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw== + dependencies: + "@polkadot/wasm-bridge" "7.3.2" + "@polkadot/wasm-crypto-asmjs" "7.3.2" + "@polkadot/wasm-crypto-init" "7.3.2" + "@polkadot/wasm-crypto-wasm" "7.3.2" + "@polkadot/wasm-util" "7.3.2" + tslib "^2.6.2" + +"@polkadot/wasm-util@7.3.2", "@polkadot/wasm-util@^7.3.2": + version "7.3.2" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz#4fe6370d2b029679b41a5c02cd7ebf42f9b28de1" + integrity sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-bigint@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.4.2.tgz#7eb2ec732259df48b5a00f07879a1331e05606ec" + integrity sha512-awRiox+/XSReLzimAU94fPldowiwnnMUkQJe8AebYhNocAj6SJU00GNoj6j6tAho6yleOwrTJXZaWFBaQVJQNg== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-bigint@12.6.2", "@polkadot/x-bigint@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz#59b7a615f205ae65e1ac67194aefde94d3344580" + integrity sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-bigint@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-13.0.2.tgz#25adca9ce0c5ed691f9bced283f44f7e7d824300" + integrity sha512-h2jKT/UaxiEal8LhQeH6+GCjO7GwEqVAD2SNYteCOXff6yNttqAZYJuHZsndbVjVNwqRNf8D5q/zZkD0HUd6xQ== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-fetch@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz#b1bca028db90263bafbad2636c18d838d842d439" + integrity sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw== + dependencies: + "@polkadot/x-global" "12.6.2" + node-fetch "^3.3.2" + tslib "^2.6.2" + +"@polkadot/x-global@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.4.2.tgz#5662366e3deda0b4c8f024b2d902fa838f9e60a4" + integrity sha512-g6GXHD/ykZvHap3M6wh19dO70Zm43l4jEhlxf5LtTo5/0/UporFCXr2YJYZqfbn9JbQwl1AU+NroYio+vtJdiA== + dependencies: + "@babel/runtime" "^7.20.13" + +"@polkadot/x-global@12.6.2", "@polkadot/x-global@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-12.6.2.tgz#31d4de1c3d4c44e4be3219555a6d91091decc4ec" + integrity sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-global@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-13.0.2.tgz#77afc4fbd4cfac8ba78cf120836f30ecc7322a74" + integrity sha512-OoNIXLB5y8vIKpk4R+XmpDPhipNXWSUvEwUnpQT7NAxNLmzgMq1FhbrwBWWPRNHPrQonp7mqxV/X+v5lv1HW/g== + dependencies: + tslib "^2.6.2" + +"@polkadot/x-randomvalues@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz#13fe3619368b8bf5cb73781554859b5ff9d900a2" + integrity sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-randomvalues@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-13.0.2.tgz#78ae28b345895cc816ffcad0b336c31cadfcf928" + integrity sha512-SGj+L0H/7TWZtSmtkWlixO4DFzXDdluI0UscN2h285os2Ns8PnmBbue+iJ8PVSzpY1BOxd66gvkkpboPz+jXFQ== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-textdecoder@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.4.2.tgz#93202f3e5ad0e7f75a3fa02d2b8a3343091b341b" + integrity sha512-d3ADduOKUTU+cliz839+KCFmi23pxTlabH7qh7Vs1GZQvXOELWdqFOqakdiAjtMn68n1KVF4O14Y+OUm7gp/zA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-textdecoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz#b86da0f8e8178f1ca31a7158257e92aea90b10e4" + integrity sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textdecoder@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-13.0.2.tgz#662a6855af8e7a5af17f86890e59ab44f829243a" + integrity sha512-mauglOkTJxLGmLwLc3J5Jlq/W+SHP53eiy3F8/8JxxfnXrZKgWoQXGpvXYPjFnMZj0MzDSy/6GjyGWnDCgdQFA== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-textencoder@10.4.2": + version "10.4.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.4.2.tgz#cd2e6c8a66b0b400a73f0164e99c510fb5c83501" + integrity sha512-mxcQuA1exnyv74Kasl5vxBq01QwckG088lYjc3KwmND6+pPrW2OWagbxFX5VFoDLDAE+UJtnUHsjdWyOTDhpQA== + dependencies: + "@babel/runtime" "^7.20.13" + "@polkadot/x-global" "10.4.2" + +"@polkadot/x-textencoder@12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz#81d23bd904a2c36137a395c865c5fefa21abfb44" + integrity sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + +"@polkadot/x-textencoder@13.0.2": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-13.0.2.tgz#5e178e0f759df50592e6870346c8db2a445af957" + integrity sha512-Lq08H2OnVXj97uaOwg7tcmRS7a4VJYkHEeWO4FyEMOk6P6lU6W8OVNjjxG0se9PCEgmyZPUDbJI//1ynzP4cXw== + dependencies: + "@polkadot/x-global" "13.0.2" + tslib "^2.6.2" + +"@polkadot/x-ws@^12.6.2": + version "12.6.2" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-12.6.2.tgz#b99094d8e53a03be1de903d13ba59adaaabc767a" + integrity sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw== + dependencies: + "@polkadot/x-global" "12.6.2" + tslib "^2.6.2" + ws "^8.15.1" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@react-spring/animated@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/animated/-/animated-9.7.4.tgz#c712b2d3dc9312ef41aa8886818b539151bda062" + integrity sha512-7As+8Pty2QlemJ9O5ecsuPKjmO0NKvmVkRR1n6mEotFgWar8FKuQt2xgxz3RTgxcccghpx1YdS1FCdElQNexmQ== + dependencies: + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/core@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/core/-/core-9.7.4.tgz#0eaa0b5da3d18036d87a571f23079819d45a9f46" + integrity sha512-GzjA44niEJBFUe9jN3zubRDDDP2E4tBlhNlSIkTChiNf9p4ZQlgXBg50qbXfSXHQPHak/ExYxwhipKVsQ/sUTw== + dependencies: + "@react-spring/animated" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/rafz@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/rafz/-/rafz-9.7.4.tgz#d53aa45a8cb116b81b27ba29e0cc15470ccfd449" + integrity sha512-mqDI6rW0Ca8IdryOMiXRhMtVGiEGLIO89vIOyFQXRIwwIMX30HLya24g9z4olDvFyeDW3+kibiKwtZnA4xhldA== + +"@react-spring/shared@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/shared/-/shared-9.7.4.tgz#8ac57505072c2aee33d77c47c4269347061a3377" + integrity sha512-bEPI7cQp94dOtCFSEYpxvLxj0+xQfB5r9Ru1h8OMycsIq7zFZon1G0sHrBLaLQIWeMCllc4tVDYRTLIRv70C8w== + dependencies: + "@react-spring/rafz" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@react-spring/types@~9.7.4": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/types/-/types-9.7.4.tgz#c849a7f062b5163d078e5e75f28c8f6acf91792e" + integrity sha512-iQVztO09ZVfsletMiY+DpT/JRiBntdsdJ4uqk3UJFhrhS8mIC9ZOZbmfGSRs/kdbNPQkVyzucceDicQ/3Mlj9g== + +"@react-spring/web@9.4.5 || ^9.7.2": + version "9.7.4" + resolved "https://registry.yarnpkg.com/@react-spring/web/-/web-9.7.4.tgz#0086ab5dcf17e6a8f3d7e7f8041ccb4cc2fa10dc" + integrity sha512-UMvCZp7I5HCVIleSa4BwbNxynqvj+mJjG2m20VO2yPoi2pnCYANy58flvz9v/YcXTAvsmL655FV3pm5fbr6akA== + dependencies: + "@react-spring/animated" "~9.7.4" + "@react-spring/core" "~9.7.4" + "@react-spring/shared" "~9.7.4" + "@react-spring/types" "~9.7.4" + +"@repeaterjs/repeater@^3.0.4", "@repeaterjs/repeater@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@repeaterjs/repeater/-/repeater-3.0.6.tgz#be23df0143ceec3c69f8b6c2517971a5578fdaa2" + integrity sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA== + +"@resvg/resvg-wasm@2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@resvg/resvg-wasm/-/resvg-wasm-2.4.0.tgz#e01164b9a267c822e1ff797daa2fb91b663ea6f0" + integrity sha512-C7c51Nn4yTxXFKvgh2txJFNweaVcfUPQxwEUFw4aWsCmfiBDJsTSwviIF8EcwjQ6k8bPyMWCl1vw4BdxE569Cg== + +"@rollup/plugin-babel@^5.2.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283" + integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@rollup/pluginutils" "^3.1.0" + +"@rollup/plugin-node-resolve@^11.2.1": + version "11.2.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" + integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.4.1": + version "2.4.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" + integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sapphire/async-queue@^1.5.2": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.3.tgz#03cd2a2f3665068f314736bdc56eee2025352422" + integrity sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w== + +"@sapphire/snowflake@^3.5.3": + version "3.5.3" + resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a" + integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ== + +"@scure/base@^1.1.1", "@scure/base@^1.1.5": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" + integrity sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g== + +"@shuding/opentype.js@1.4.0-beta.0": + version "1.4.0-beta.0" + resolved "https://registry.yarnpkg.com/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz#5d1e7e9e056f546aad41df1c5043f8f85d39e24b" + integrity sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA== + dependencies: + fflate "^0.7.3" + string.prototype.codepointat "^0.2.1" + +"@sigstore/bundle@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.3.2.tgz#ad4dbb95d665405fd4a7a02c8a073dbd01e4e95e" + integrity sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + +"@sigstore/core@^1.0.0", "@sigstore/core@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/core/-/core-1.1.0.tgz#5583d8f7ffe599fa0a89f2bf289301a5af262380" + integrity sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg== + +"@sigstore/protobuf-specs@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz#5becf88e494a920f548d0163e2978f81b44b7d6f" + integrity sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw== + +"@sigstore/sign@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.3.2.tgz#d3d01e56d03af96fd5c3a9b9897516b1233fc1c4" + integrity sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + make-fetch-happen "^13.0.1" + proc-log "^4.2.0" + promise-retry "^2.0.1" + +"@sigstore/tuf@^2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-2.3.4.tgz#da1d2a20144f3b87c0172920cbc8dcc7851ca27c" + integrity sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw== + dependencies: + "@sigstore/protobuf-specs" "^0.3.2" + tuf-js "^2.2.1" + +"@sigstore/verify@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/verify/-/verify-1.2.1.tgz#c7e60241b432890dcb8bd8322427f6062ef819e1" + integrity sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.1.0" + "@sigstore/protobuf-specs" "^0.3.2" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@spruceid/siwe-parser@^2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz#3e13e7d3ac0bfdaf109a07342590eb21daee2fc3" + integrity sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ== + dependencies: + "@noble/hashes" "^1.1.2" + apg-js "^4.3.0" + uri-js "^4.4.1" + valid-url "^1.0.9" + +"@sqltools/formatter@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== + +"@stablelib/binary@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f" + integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== + dependencies: + "@stablelib/int" "^1.0.1" + +"@stablelib/int@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008" + integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== + +"@stablelib/random@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" + integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== + dependencies: + "@stablelib/binary" "^1.0.1" + "@stablelib/wipe" "^1.0.1" + +"@stablelib/wipe@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" + integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== + +"@subsquid/graphiql-console@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz#415d305f1b7df7f737c788a3311cfa3179b6dbd1" + integrity sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw== + +"@subsquid/graphql-server@^4.5.1": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@subsquid/graphql-server/-/graphql-server-4.7.0.tgz#08656425b525ce9a5eccfc1ef885faf706b05795" + integrity sha512-KzpiMT3veTSWdYMcnsleqJyzgeYfuO1z9u9qjC24Q4cCvp/4eMhWbxp0oUYnpWwwaZYGL/wACMvulpYEB3ndxQ== + dependencies: + "@apollo/utils.keyvadapter" "~1.1.2" + "@apollo/utils.keyvaluecache" "~1.0.2" + "@graphql-tools/merge" "^9.0.1" + "@graphql-tools/schema" "^10.0.2" + "@graphql-tools/utils" "^10.0.11" + "@keyv/redis" "~2.5.8" + "@subsquid/logger" "^1.3.3" + "@subsquid/openreader" "^5.0.0" + "@subsquid/typeorm-config" "^4.1.1" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-http-server" "^2.0.0" + "@subsquid/util-internal-ts-node" "^0.0.0" + apollo-server-core "^3.13.0" + apollo-server-express "^3.13.0" + apollo-server-plugin-response-cache "~3.7.1" + commander "^11.1.0" + dotenv "^16.3.1" + express "^4.18.2" + graphql "^15.8.0" + graphql-ws "^5.14.2" + keyv "~4.5.4" + pg "^8.11.3" + ws "^8.14.2" + +"@subsquid/http-client@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/http-client/-/http-client-1.5.0.tgz#693c7ae4830f02662e934731ca00c9af5b8e4939" + integrity sha512-C7lb67mu/Xhno3x4EOzIPZ9fqixq797rT7DxvKVRXJBE7dYFEPyrOBiKO1W45YwX3lFfuHGKpMu2YBOeS/L7lQ== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + node-fetch "^3.3.2" + +"@subsquid/logger@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@subsquid/logger/-/logger-1.3.3.tgz#db5e431324a7ba97b09ece7b88f4cd6962ab6462" + integrity sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-json" "^1.2.2" + supports-color "^8.1.1" + +"@subsquid/openreader@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/openreader/-/openreader-5.0.0.tgz#32ce7528218dba8766d787643867083345621b5f" + integrity sha512-sSi2PtZcTBW6ZAhquIrFF5R6sQigtz0cJHdJV4S0uAEp+QzZhRA/GRVNmMw/Ab9gPd7Meiq+18PbsfN08IBedw== + dependencies: + "@graphql-tools/merge" "^9.0.1" + "@subsquid/graphiql-console" "^0.3.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-http-server" "^2.0.0" + "@subsquid/util-naming" "^1.3.0" + apollo-server-core "^3.13.0" + apollo-server-express "^3.13.0" + commander "^11.1.0" + deep-equal "^2.2.3" + express "^4.18.2" + graphql "^15.8.0" + graphql-parse-resolve-info "^4.14.0" + graphql-ws "^5.14.2" + inflected "^2.1.0" + pg "^8.11.3" + ws "^8.14.2" + +"@subsquid/rpc-client@^4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@subsquid/rpc-client/-/rpc-client-4.9.0.tgz#c7040586d410e55dfb9606cfeea88dc7c1aca778" + integrity sha512-lpb6qRMMlaacXOFPRhv4CZ7g4w7pKIR7ZEbMjyFexLOdv9MkcYzuGD5XT5REGaBA6mfQMaLa33K5lqAb+tJKBQ== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-binary-heap" "^1.0.0" + "@subsquid/util-internal-counters" "^1.3.2" + "@subsquid/util-internal-json-fix-unsafe-integers" "^0.0.0" + websocket "^1.0.34" + +"@subsquid/scale-codec@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz#4d576619c8b75933e1bc39ec57edeaf49fa9755c" + integrity sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-json" "^1.2.2" + +"@subsquid/ss58-codec@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz#7a139ea59357cac7290719f08452a15828fbd3f6" + integrity sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A== + dependencies: + base-x "^4.0.0" + blake2b "^2.1.4" + +"@subsquid/ss58@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/ss58/-/ss58-2.0.2.tgz#dbc7fccaf1634b34b5ae3c43f6b4a12d94cdb350" + integrity sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw== + dependencies: + "@subsquid/ss58-codec" "^1.2.3" + "@subsquid/util-internal-hex" "^1.2.2" + +"@subsquid/substrate-data-raw@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-data-raw/-/substrate-data-raw-1.2.0.tgz#325b8738f3ff942e19c92774fa41abe5152ac4c9" + integrity sha512-bQne2arxfbCAe3Kr0WikM2uyC3L4DfvkcQpy5+9nYBMzH5/Z9KBZMLUzv5dwFDAkHlCXEogcYu5Yh0NGk3O93Q== + dependencies: + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-timeout" "^2.3.2" + +"@subsquid/substrate-data@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-data/-/substrate-data-4.2.0.tgz#7a0a3910c241469ddacd2723ddcefcb8ebcd2c1a" + integrity sha512-N+bwAhv2cfGJpTuijLaMsL8H42x0j6Y97BDBliUZY2/Rcg9wog0qckJuKH1HqHpVxP3C3qD2kHVVubTPCG5JQA== + dependencies: + "@subsquid/scale-codec" "^4.0.1" + "@subsquid/substrate-data-raw" "^1.2.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-xxhash" "^1.2.2" + "@substrate/calc" "^0.2.8" + blake2b "^2.1.4" + +"@subsquid/substrate-metadata-explorer@^3.1.2": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.2.0.tgz#4e341bec144f132382563c7f56753731f14da136" + integrity sha512-sir8ZDjJ8bCErbrx3USy6qBq0Nszyqu5UOO+8jcnZ1OCvKPJDzudu9m1SExjzRShdKoKroSObTMQA52fchC4Vw== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/rpc-client" "^4.9.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-commander" "^1.4.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-read-lines" "^1.2.2" + commander "^11.1.0" + +"@subsquid/substrate-processor@^8.3.0": + version "8.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-processor/-/substrate-processor-8.5.0.tgz#fde789a150c413a7f418ae54190bb84f3248456b" + integrity sha512-Xk+mt+Bf3TH0GlVw5MjD+1I5ccEpyxymx9f1CtE0t7Etwwkmhv3o29eukPUUEPPn+jJUyJXSzPMzh4M3TIYqDw== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/rpc-client" "^4.9.0" + "@subsquid/substrate-data" "^4.2.0" + "@subsquid/substrate-data-raw" "^1.2.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-archive-client" "^0.1.2" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-internal-ingest-tools" "^1.1.4" + "@subsquid/util-internal-json" "^1.2.3" + "@subsquid/util-internal-processor-tools" "^4.1.1" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-validation" "^0.5.0" + +"@subsquid/substrate-typegen@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz#b5a523b3e86902aa0116eca5a2cc9757e28753f3" + integrity sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g== + dependencies: + "@subsquid/http-client" "^1.4.0" + "@subsquid/logger" "^1.3.3" + "@subsquid/substrate-metadata-explorer" "^3.1.2" + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-internal-config" "^2.2.2" + "@subsquid/util-internal-read-lines" "^1.2.2" + "@subsquid/util-naming" "^1.2.2" + commander "^11.1.0" + +"@subsquid/typeorm-codegen@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.2.tgz#8848f00d08ca303fb31e909c6ad93a7513473784" + integrity sha512-MDeA4LrqbRIYpmlwRdO1GyPzq+pfIS17VAgkMbYx2LtyqMbSvIaYU5D+iE0QMJr/XvO4bXC8+qZ6Fx4kIMuvfw== + dependencies: + "@subsquid/openreader" "^5.0.0" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-naming" "^1.3.0" + commander "^11.1.0" + +"@subsquid/typeorm-config@^4.1.0", "@subsquid/typeorm-config@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-config/-/typeorm-config-4.1.1.tgz#9b486d4c6e8d3c5a381337b14092b6decc497929" + integrity sha512-3T2L2jmFIRYxWHL/w4rMuaSiHLhDywQWPKtfD3TaSohjXR+VdDG5XimDMmSwM4dzQTBToGpnfUEkzH3v1+EnCg== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal-ts-node" "^0.0.0" + "@subsquid/util-naming" "^1.3.0" + +"@subsquid/typeorm-migration@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz#8251d255a6e4b9309240d03bd03b84a2129c4275" + integrity sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw== + dependencies: + "@subsquid/typeorm-config" "^4.1.0" + "@subsquid/util-internal" "^3.0.0" + "@subsquid/util-internal-code-printer" "^1.2.2" + "@subsquid/util-internal-ts-node" "^0.0.0" + commander "^11.1.0" + dotenv "^16.3.1" + +"@subsquid/typeorm-store@^1.4.0": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@subsquid/typeorm-store/-/typeorm-store-1.5.1.tgz#72ce3ba9a8cec296ee4f6fbe49e3dc27f019a7e2" + integrity sha512-XIhc/4qotnJP+8RDxWjUdsSCr+LOPOAp9U+u0VCqnyXx5rN13MDS0L5KSkIGinr/OQtK1CBWmRpDLF4ExWcWCw== + dependencies: + "@subsquid/typeorm-config" "^4.1.1" + "@subsquid/util-internal" "^3.2.0" + +"@subsquid/util-internal-archive-client@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz#c26655abbe99fc628d206b12b79050a637041a41" + integrity sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g== + dependencies: + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-range" "^0.3.0" + +"@subsquid/util-internal-binary-heap@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz#1f86f7677c2f773697ddc6b79a09cb5c55e6e4b0" + integrity sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA== + +"@subsquid/util-internal-code-printer@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz#29621d2cae376725a3c8612a0ac53d14afed4658" + integrity sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA== + +"@subsquid/util-internal-commander@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-commander/-/util-internal-commander-1.4.0.tgz#f607fc395fc65d012fd3daeacb3df1d72cabaeff" + integrity sha512-I+IztlLVow9z2S5lK/ON4aBRYXKtAKXl/rVPUn1Ue5vq+5JgEFbWEKJgnwXkd0qKnKeoYeaRFlcyQVfxirxzJw== + +"@subsquid/util-internal-config@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz#c9244761c079be98911196dbdef7d295c328972d" + integrity sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA== + dependencies: + "@exodus/schemasafe" "^1.3.0" + jsonc-parser "^3.2.0" + +"@subsquid/util-internal-counters@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz#894ad268a1fade481a896577e42a83b73019ffa6" + integrity sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng== + +"@subsquid/util-internal-hex@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz#958ab0aceac0b1160227a688d9d3099c6230f27f" + integrity sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw== + +"@subsquid/util-internal-http-server@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz#ebdad207eb8bcb290623304a2113547d9b1d29c5" + integrity sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg== + dependencies: + "@subsquid/logger" "^1.3.3" + stoppable "^1.1.0" + +"@subsquid/util-internal-ingest-tools@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.4.tgz#bb7c1a6f3006eecbc23866021ba9f6fb7ebae1b7" + integrity sha512-2xWyqfg0mITsNdsYuGi3++UTy/D04N69KovyW5Rd71zCDSEedV0ePX5hQl/IT/o+H/u++HcXPggwJMVl09g6kQ== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-range" "^0.3.0" + +"@subsquid/util-internal-json-fix-unsafe-integers@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz#0baaefac27e3a1831df240b262c9cb78b166657f" + integrity sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w== + +"@subsquid/util-internal-json@^1.2.2", "@subsquid/util-internal-json@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz#836430ccb7b6e733cec6157aa2202a85db4fae26" + integrity sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q== + dependencies: + "@subsquid/util-internal-hex" "^1.2.2" + +"@subsquid/util-internal-processor-tools@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.1.tgz#b432a11422962036690bc5c58439c0c90d5e2d24" + integrity sha512-zzisejusRteAvwjqFDLlFapH9b86E8GdfNswuNWSjASE+VWadJ/PLfrlXFnsbAo4SxPKtqXWEewoK8cjzVjaZA== + dependencies: + "@subsquid/logger" "^1.3.3" + "@subsquid/util-internal" "^3.2.0" + "@subsquid/util-internal-counters" "^1.3.2" + "@subsquid/util-internal-prometheus-server" "^1.3.0" + "@subsquid/util-internal-range" "^0.3.0" + "@subsquid/util-internal-squid-id" "^0.0.0" + prom-client "^14.2.0" + +"@subsquid/util-internal-prometheus-server@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz#f0e692b5a6b088555e1260424a1745eb77d2dbc7" + integrity sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug== + dependencies: + "@subsquid/util-internal-http-server" "^2.0.0" + +"@subsquid/util-internal-range@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz#7aa7dceaf15f28a4f3bf9318b2dc84ebdef7cf1b" + integrity sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ== + dependencies: + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-binary-heap" "^1.0.0" + +"@subsquid/util-internal-read-lines@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz#a93336e14e689e529bda170ec6e7ec94e14710f4" + integrity sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA== + +"@subsquid/util-internal-squid-id@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-squid-id/-/util-internal-squid-id-0.0.0.tgz#1ec90d7cfee5e3764ec4feeb8103170e3e1ed55c" + integrity sha512-LyVZIGUbC87r+3VFBRiNOEycxvpkOEEjt5enY02iGl6MneLwq3m17D44xAkwfFj/U+t7GA76eeHIoI2ZkiQKog== + +"@subsquid/util-internal-ts-node@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz#186f5eee276af8f2bfb42201a62e4639a5cf37c4" + integrity sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw== + +"@subsquid/util-internal-validation@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal-validation/-/util-internal-validation-0.5.0.tgz#d68ae6f88a7bf2bc05ba0afbc5751a79666bdeb4" + integrity sha512-mGiwOzc/Fq651CbFe7aEpERXBr+BkqAz8cDpqTVAsve6ghvB5tvwlAv7i1MWnyt/g7OqX1LhYMhh7NFipyMeyA== + +"@subsquid/util-internal@^3.0.0", "@subsquid/util-internal@^3.1.0", "@subsquid/util-internal@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-internal/-/util-internal-3.2.0.tgz#5d484ee1f0b16f012775b55096b75f885ca6bc3c" + integrity sha512-foNCjOmZaP8MKMa9sNe2GXTjFSDM9UqA0I0C0/ZvCxM1lCmG3mxZb70f8Wyi7TePXC/eV8eARbIqFyz0GjQmzA== + +"@subsquid/util-naming@^1.2.2", "@subsquid/util-naming@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@subsquid/util-naming/-/util-naming-1.3.0.tgz#50394fc021a86f807c481b899bef2fdf068f1107" + integrity sha512-PfYg1uFHwb7e6egbkzIbQTWf7DVlZIQr2gHy4VE35ZNiA15R9wkJLo/Mym6OkwLQyjJwhhq7pCFhkz6tm19m+A== + dependencies: + camelcase "^6.3.0" + inflected "^2.1.0" + +"@subsquid/util-timeout@^2.3.2": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz#0f16a71a8f68191295f49df8c1be1593e9f98cae" + integrity sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ== + +"@subsquid/util-xxhash@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz#2b11c409aa3ef19aa59d8714ae64f5d4bb61514c" + integrity sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ== + dependencies: + xxhash-wasm "^1.0.2" + xxhashjs "^0.2.2" + +"@substrate/calc@^0.2.8": + version "0.2.8" + resolved "https://registry.yarnpkg.com/@substrate/calc/-/calc-0.2.8.tgz#2708d4f0514a49a40b6497b655f24307fc4f5f57" + integrity sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig== + +"@substrate/connect-extension-protocol@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz#badaa6e6b5f7c7d56987d778f4944ddb83cd9ea7" + integrity sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg== + +"@substrate/connect-known-chains@^1.1.1", "@substrate/connect-known-chains@^1.1.4": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@substrate/connect-known-chains/-/connect-known-chains-1.3.0.tgz#bc8dc2437e46b3701b64526c90e1de720a1605d8" + integrity sha512-BHcWdhOsnHtoWuS4LpFpH3MbLAhm1amq4hvl5ctI47KNZcZJcEPAF4zmeaTMuvj+UJ7LEFooy46Mn7zok47MwA== + +"@substrate/connect@0.8.10": + version "0.8.10" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.10.tgz#810b6589f848828aa840c731a1f36b84fe0e5956" + integrity sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w== + dependencies: + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.4" + "@substrate/light-client-extension-helpers" "^0.0.6" + smoldot "2.0.22" + +"@substrate/connect@0.8.8": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@substrate/connect/-/connect-0.8.8.tgz#80879f2241e2bd4f24a9aa25d7997fd91a5e68e3" + integrity sha512-zwaxuNEVI9bGt0rT8PEJiXOyebLIo6QN1SyiAHRPBOl6g3Sy0KKdSN8Jmyn++oXhVRD8aIe75/V8ZkS81T+BPQ== + dependencies: + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + "@substrate/light-client-extension-helpers" "^0.0.4" + smoldot "2.0.22" + +"@substrate/light-client-extension-helpers@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.4.tgz#a5958d5c1aac7df69f55bd90991aa935500f8124" + integrity sha512-vfKcigzL0SpiK+u9sX6dq2lQSDtuFLOxIJx2CKPouPEHIs8C+fpsufn52r19GQn+qDhU8POMPHOVoqLktj8UEA== + dependencies: + "@polkadot-api/client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@polkadot-api/substrate-client" "0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0" + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.1" + rxjs "^7.8.1" + +"@substrate/light-client-extension-helpers@^0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz#bec1c7997241226db50b44ad85a992b4348d21c3" + integrity sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA== + dependencies: + "@polkadot-api/json-rpc-provider" "0.0.1" + "@polkadot-api/json-rpc-provider-proxy" "0.0.1" + "@polkadot-api/observable-client" "0.1.0" + "@polkadot-api/substrate-client" "0.0.1" + "@substrate/connect-extension-protocol" "^2.0.0" + "@substrate/connect-known-chains" "^1.1.4" + rxjs "^7.8.1" + +"@substrate/ss58-registry@^1.44.0", "@substrate/ss58-registry@^1.46.0": + version "1.49.0" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz#ed9507316d13f49b2bccb65f08ec97180f71fc39" + integrity sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA== + +"@subwallet/wallet-connect@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@subwallet/wallet-connect/-/wallet-connect-0.2.7.tgz#3574c3746c1d797a24e8e9691db73d2355de17f4" + integrity sha512-BcSLbZF77N2aptq9sRpACIUVo25yW0Ey/6x/BeW/bu0C2wC4/SAxIY/n5S5T74glNlzb+6a9wmeRQa1IrBbAFw== + dependencies: + "@babel/runtime" "^7.16.7" + "@metamask/providers" "^11.1.1" + "@metamask/types" "^1.1.0" + "@polkadot/extension-dapp" "^0.46.5" + "@polkadot/extension-inject" "^0.46.5" + "@polkadot/types" "^10.9.1" + "@polkadot/util" "^10.2.1" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + version "2.2.3" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" + integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ== + dependencies: + ejs "^3.1.6" + json5 "^2.2.0" + magic-string "^0.25.0" + string.prototype.matchall "^4.0.6" + +"@svgr/babel-plugin-add-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== + +"@svgr/babel-plugin-remove-jsx-attribute@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== + +"@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== + +"@svgr/babel-plugin-svg-dynamic-title@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== + +"@svgr/babel-plugin-svg-em-dimensions@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== + +"@svgr/babel-plugin-transform-react-native-svg@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== + +"@svgr/babel-plugin-transform-svg-component@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== + +"@svgr/babel-preset@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "8.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "8.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "8.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "8.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "8.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" + "@svgr/babel-plugin-transform-svg-component" "8.0.0" + +"@svgr/core@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + snake-case "^3.0.4" + +"@svgr/hast-util-to-babel-ast@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "8.1.0" + "@svgr/hast-util-to-babel-ast" "8.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "8.1.0" + "@svgr/plugin-jsx" "8.1.0" + "@svgr/plugin-svgo" "8.1.0" + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/helpers@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" + integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== + dependencies: + "@swc/counter" "^0.1.3" + tslib "^2.4.0" + +"@tailwindcss/forms@^0.5.7": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.7.tgz#db5421f062a757b5f828bc9286ba626c6685e821" + integrity sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw== + dependencies: + mini-svg-data-uri "^1.2.3" + +"@tanstack/match-sorter-utils@^8.11.8": + version "8.19.4" + resolved "https://registry.yarnpkg.com/@tanstack/match-sorter-utils/-/match-sorter-utils-8.19.4.tgz#dacf772b5d94f4684f10dbeb2518cf72dccab8a5" + integrity sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg== + dependencies: + remove-accents "0.5.0" + +"@tanstack/react-table@^8.13.2": + version "8.20.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-table/-/react-table-8.20.1.tgz#bd2d549d8a18458fb8284025ce66a9b86176fa6b" + integrity sha512-PJK+07qbengObe5l7c8vCdtefXm8cyR4i078acWrHbdm8JKw1ES7YpmOtVt9ALUVEEFAHscdVpGRhRgikgFMbQ== + dependencies: + "@tanstack/table-core" "8.20.1" + +"@tanstack/react-virtual@^3.0.0-beta.60": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@tanstack/react-virtual/-/react-virtual-3.10.1.tgz#e7b7dfc26b9b49db8f3099f29470a63a1cfc7044" + integrity sha512-h5kNeE+yQwspjl9E3sJ3UYQu/MuspNOBT5cVdc+NA0uU9B1XSkxbzp86teV3arMDVcQ4ESExqs4JyIirYAMcuA== + dependencies: + "@tanstack/virtual-core" "3.10.1" + +"@tanstack/table-core@8.20.1": + version "8.20.1" + resolved "https://registry.yarnpkg.com/@tanstack/table-core/-/table-core-8.20.1.tgz#74bfab10fa35bed51fa0bd2f3539a331d7e78f1b" + integrity sha512-5Ly5TIRHnWH7vSDell9B/OVyV380qqIJVg7H7R7jU4fPEmOD4smqAX7VRflpYI09srWR8aj5OLD2Ccs1pI5mTg== + +"@tanstack/virtual-core@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@tanstack/virtual-core/-/virtual-core-3.10.1.tgz#a2312c6cfc6f0d8e3e9a93bb99f96552b82082af" + integrity sha512-JDi3wU1HIxuxx8BgD7Ix8IXlelCKdTJIh9c0qBs+QXHdix3mjMbkXI3wOq0TuCx1w1RGgzZue34QrM/NPdp/sw== + +"@testing-library/dom@^9.0.0": + version "9.3.4" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce" + integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^6.4.2": + version "6.4.8" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.8.tgz#9c435742b20c6183d4e7034f2b329d562c079daa" + integrity sha512-JD0G+Zc38f5MBHA4NgxQMR5XtO5Jx9g86jqturNTt2WUfRmLDIY7iKkWHDCCTiDuFMre6nxAD5wHw9W5kI4rGw== + dependencies: + "@adobe/css-tools" "^4.4.0" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.6.3" + lodash "^4.17.21" + redent "^3.0.0" + +"@testing-library/react@^14.2.1": + version "14.3.1" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.1.tgz#29513fc3770d6fb75245c4e1245c470e4ffdd830" + integrity sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^9.0.0" + "@types/react-dom" "^18.0.0" + +"@testing-library/user-event@^14.5.2": + version "14.5.2" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" + integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tufjs/canonical-json@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== + +"@tufjs/models@2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.1.tgz#e429714e753b6c2469af3212e7f320a6973c2812" + integrity sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg== + dependencies: + "@tufjs/canonical-json" "2.0.0" + minimatch "^9.0.4" + +"@tybys/wasm-util@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355" + integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== + dependencies: + tslib "^2.4.0" + +"@types/accepts@^1.3.5": + version "1.3.7" + resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.7.tgz#3b98b1889d2b2386604c2bbbe62e4fb51e95b265" + integrity sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ== + dependencies: + "@types/node" "*" + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + +"@types/bn.js@^5.1.1", "@types/bn.js@^5.1.5": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + +"@types/body-parser@*": + version "1.19.5" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" + integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/body-parser@1.19.2": + version "1.19.2" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.38" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" + integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== + dependencies: + "@types/node" "*" + +"@types/cors@2.8.12": + version "2.8.12" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" + integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== + +"@types/d3-color@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-2.0.6.tgz#88a9a06afea2d3a400ea650a6c3e60e9bf9b0f2a" + integrity sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg== + +"@types/d3-delaunay@^5.3.0": + version "5.3.4" + resolved "https://registry.yarnpkg.com/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz#6440a78e48bbfc3652a2ec007a710e046c421a10" + integrity sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A== + +"@types/d3-format@^1.4.1": + version "1.4.5" + resolved "https://registry.yarnpkg.com/@types/d3-format/-/d3-format-1.4.5.tgz#6392303c2ca3c287c3a1a2046455cd0a0bd50bbe" + integrity sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA== + +"@types/d3-path@^2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-path/-/d3-path-2.0.4.tgz#6b2893c23ec01788f79f7a6ec39eaaf9a6732af4" + integrity sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA== + +"@types/d3-scale-chromatic@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.4.tgz#7376660736efc734daf75228d7f08e9029cefe1d" + integrity sha512-OUgfg6wmoZVhs0/pV8HZhsMw7pYJnS6smfNK2S5ogMaPHfDUaTMu7JA5ssZrRupwf2vWI+haPAuUpsz+M1BOKA== + +"@types/d3-scale@^3.2.3": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-3.3.5.tgz#c89ff1550a4246f717e3c2e35deb35e183a338ba" + integrity sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A== + dependencies: + "@types/d3-time" "^2" + +"@types/d3-shape@^2.0.0": + version "2.1.7" + resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-2.1.7.tgz#7c3bd6a9c758b54ba495cab0575cb18359251123" + integrity sha512-HedHlfGHdwzKqX9+PiQVXZrdmGlwo7naoefJP7kCNk4Y7qcpQt1tUaoRa6qn0kbTdlaIHGO7111qLtb/6J8uuw== + dependencies: + "@types/d3-path" "^2" + +"@types/d3-time-format@^2.3.1": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-2.3.4.tgz#544af5184df8b3fc4d9b42b14058789acee2905e" + integrity sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg== + +"@types/d3-time-format@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/d3-time-format/-/d3-time-format-3.0.4.tgz#f972bdd7be1048184577cf235a44721a78c6bb4b" + integrity sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg== + +"@types/d3-time@^1.1.1": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.1.4.tgz#20da4b75c537a940e7319b75717c67a2e499515a" + integrity sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g== + +"@types/d3-time@^2": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-2.1.4.tgz#43587aa57d565ab60a1d2201edeebc497d5c1252" + integrity sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@4.17.31": + version "4.17.31" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express-serve-static-core@^4.17.18": + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + +"@types/express@4.17.14": + version "4.17.14" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/glob@^7.1.1": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.3.1": + version "3.3.5" + resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz#dab7867ef789d87e2b4b0003c9d65c49cc44a494" + integrity sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/http-errors@*": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" + integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.12": + version "29.5.12" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" + integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/js-cookie@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@types/js-cookie/-/js-cookie-3.0.6.tgz#a04ca19e877687bd449f5ad37d33b104b71fdf95" + integrity sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ== + +"@types/js-yaml@^4.0.0": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.9.tgz#cd82382c4f902fed9691a2ed79ec68c5898af4c2" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== + +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/jsonwebtoken@^9.0.3": + version "9.0.6" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.6.tgz#d1af3544d99ad992fb6681bbe60676e06b032bd3" + integrity sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw== + dependencies: + "@types/node" "*" + +"@types/lodash@^4.14.175": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== + +"@types/long@^4.0.0": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@*": + version "22.4.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.4.1.tgz#9b595d292c65b94c20923159e2ce947731b6fdce" + integrity sha512-1tbpb9325+gPnKK0dMm+/LMriX0vKxf6RnB0SZUqfyVkQ4fMgUSySqhxE/y8Jvs4NyF1yHzTfG9KlnkIODxPKg== + dependencies: + undici-types "~6.19.2" + +"@types/node@18.15.13": + version "18.15.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.13.tgz#f64277c341150c979e42b00e4ac289290c9df469" + integrity sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== + +"@types/node@^10.1.0": + version "10.17.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" + integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== + +"@types/node@^20.11.24", "@types/node@^20.12.7": + version "20.16.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.1.tgz#0b44b15271d0e2191ca68faf1fbe506e06aed732" + integrity sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ== + dependencies: + undici-types "~6.19.2" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/prop-types@*", "@types/prop-types@^15.7.2": + version "15.7.12" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + +"@types/qs@*": + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== + +"@types/range-parser@*": + version "1.2.7" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" + integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== + +"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.20": + version "18.3.0" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== + dependencies: + "@types/react" "*" + +"@types/react-lifecycles-compat@^3.0.1": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#87eb56ce6cce9e9db4557825ab559d90f72995dc" + integrity sha512-1CM48Y9ztL5S4wjt7DK2izrkgPp/Ql0zCJu/vHzhgl7J+BD4UbSGjHN1M2TlePms472JvOazUtAO1/G3oFZqIQ== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^18.2.63": + version "18.3.4" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.4.tgz#dfdd534a1d081307144c00e325c06e00312c93a3" + integrity sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/send@*": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" + integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/serve-static@*": + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== + dependencies: + "@types/http-errors" "*" + "@types/node" "*" + "@types/send" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/stylis@4.2.5": + version "4.2.5" + resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.5.tgz#1daa6456f40959d06157698a653a9ab0a70281df" + integrity sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw== + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.7.tgz#baccb07a970b91707df3a3e8ba6896c57ead2d11" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/ws@^8.0.0": + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^7.1.1": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3" + integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/type-utils" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^6.4.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== + dependencies: + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + +"@typescript-eslint/scope-manager@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83" + integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + +"@typescript-eslint/type-utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b" + integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA== + dependencies: + "@typescript-eslint/typescript-estree" "7.18.0" + "@typescript-eslint/utils" "7.18.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== + +"@typescript-eslint/types@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9" + integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ== + +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== + dependencies: + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/typescript-estree@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931" + integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA== + dependencies: + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/visitor-keys" "7.18.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f" + integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "7.18.0" + "@typescript-eslint/types" "7.18.0" + "@typescript-eslint/typescript-estree" "7.18.0" + +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@typescript-eslint/visitor-keys@7.18.0": + version "7.18.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7" + integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg== + dependencies: + "@typescript-eslint/types" "7.18.0" + eslint-visitor-keys "^3.4.3" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vercel/og@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@vercel/og/-/og-0.6.2.tgz#228b064451c6ea4e3900e2c94404bec57f7fd172" + integrity sha512-OTe0KE37F5Y2eTys6eMnfopC+P4qr2ooXUTFyFPTplYSPwowmFk/HLD1FXtbKLjqsIH0SgekcJWad+C5uX4nkg== + dependencies: + "@resvg/resvg-wasm" "2.4.0" + satori "0.10.9" + yoga-wasm-web "0.3.3" + +"@vladfrangu/async_event_emitter@^2.2.4": + version "2.4.5" + resolved "https://registry.yarnpkg.com/@vladfrangu/async_event_emitter/-/async_event_emitter-2.4.5.tgz#7bc35026fdc3398a5e1aac801edd21b28cdf4cfa" + integrity sha512-J7T3gUr3Wz0l7Ni1f9upgBZ7+J22/Q1B7dl0X6fG+fTsD+H+31DIosMHj4Um1dWQwqbcQ3oQf+YS2foYkDc9cQ== + +"@whatwg-node/events@^0.0.3": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@whatwg-node/events/-/events-0.0.3.tgz#13a65dd4f5893f55280f766e29ae48074927acad" + integrity sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA== + +"@whatwg-node/fetch@^0.8.0": + version "0.8.8" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.8.8.tgz#48c6ad0c6b7951a73e812f09dd22d75e9fa18cae" + integrity sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg== + dependencies: + "@peculiar/webcrypto" "^1.4.0" + "@whatwg-node/node-fetch" "^0.3.6" + busboy "^1.6.0" + urlpattern-polyfill "^8.0.0" + web-streams-polyfill "^3.2.1" + +"@whatwg-node/fetch@^0.9.0": + version "0.9.20" + resolved "https://registry.yarnpkg.com/@whatwg-node/fetch/-/fetch-0.9.20.tgz#f217153c173d9632a0f76f995513dfc435ff2778" + integrity sha512-bayE8tJBVw3QRg5vDqGIOfBmdxCV6HHUqCxMhZ1pOHukUk1TrfNH3tViivJErhmtSN0bbvjWaBQpJllAOpgSxA== + dependencies: + "@whatwg-node/node-fetch" "^0.5.22" + urlpattern-polyfill "^10.0.0" + +"@whatwg-node/node-fetch@^0.3.6": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz#e28816955f359916e2d830b68a64493124faa6d0" + integrity sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA== + dependencies: + "@whatwg-node/events" "^0.0.3" + busboy "^1.6.0" + fast-querystring "^1.1.1" + fast-url-parser "^1.1.3" + tslib "^2.3.1" + +"@whatwg-node/node-fetch@^0.5.22": + version "0.5.22" + resolved "https://registry.yarnpkg.com/@whatwg-node/node-fetch/-/node-fetch-0.5.22.tgz#5fce9505f333a9ce463b6b5ff86223ffd19e3ace" + integrity sha512-ccjjD+JCaylDGGcbJ69jFK2FaoGobpyOiDr2FnzSpcEss20MJzfJAiUIrpglWADplyB2AwfunMM7ph3IpPArhw== + dependencies: + "@kamilkisiela/fast-url-parser" "^1.1.4" + busboy "^1.6.0" + fast-querystring "^1.1.1" + tslib "^2.6.3" + +"@wry/caches@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wry/caches/-/caches-1.0.1.tgz#8641fd3b6e09230b86ce8b93558d44cf1ece7e52" + integrity sha512-bXuaUNLVVkD20wcGBWRyo7j9N3TxePEWFZj2Y+r9OoUzfqmavM84+mFykRicNsBqatba5JLay1t48wxaXaWnlA== + dependencies: + tslib "^2.3.0" + +"@wry/context@^0.7.0": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.4.tgz#e32d750fa075955c4ab2cfb8c48095e1d42d5990" + integrity sha512-jmT7Sb4ZQWI5iyu3lobQxICu2nC/vbUhP0vIdd6tHC9PTfenmRmuIFqktc6GH9cgi+ZHnsLWPvfSvc4DrYmKiQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.6": + version "0.5.7" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.7.tgz#72ec1a73760943d439d56b7b1e9985aec5d497bb" + integrity sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.4.3.tgz#077d52c22365871bf3ffcbab8e95cb8bc5689af4" + integrity sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.5.0.tgz#11e783f3a53f6e4cd1d42d2d1323f5bc3fa99c94" + integrity sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA== + dependencies: + tslib "^2.3.0" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@yarnpkg/parsers@3.0.0-rc.46": + version "3.0.0-rc.46" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" + integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + +"@zkochan/js-yaml@0.0.7": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz#4b0cb785220d7c28ce0ec4d0804deb5d821eae89" + integrity sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ== + dependencies: + argparse "^2.0.1" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abbrev@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== + +accepts@^1.3.5, accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^8.8.2, acorn@^8.9.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-4.0.0-beta.5.tgz#8d2452c52adedebc3a3e28465d858c11ca315873" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== + +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== + dependencies: + debug "^4.3.4" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.6.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-align@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" + integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== + dependencies: + string-width "^4.1.0" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +apg-js@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/apg-js/-/apg-js-4.4.0.tgz#09dcecab0731fbde233b9f2352fdd2d07e56b2cf" + integrity sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q== + +apollo-datasource@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-3.3.2.tgz#5711f8b38d4b7b53fb788cb4dbd4a6a526ea74c8" + integrity sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-env "^4.2.1" + +apollo-reporting-protobuf@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz#6edd31f09d4a3704d9e808d1db30eca2229ded26" + integrity sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog== + dependencies: + "@apollo/protobufjs" "1.2.6" + +apollo-server-core@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-3.13.0.tgz#ad6601fbb34cc97eedca27a9fb0b5738d11cd27d" + integrity sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + "@apollo/utils.usagereporting" "^1.0.0" + "@apollographql/apollo-tools" "^0.5.3" + "@apollographql/graphql-playground-html" "1.6.29" + "@graphql-tools/mock" "^8.1.2" + "@graphql-tools/schema" "^8.0.0" + "@josephg/resolvable" "^1.0.0" + apollo-datasource "^3.3.2" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + apollo-server-errors "^3.3.1" + apollo-server-plugin-base "^3.7.2" + apollo-server-types "^3.8.0" + async-retry "^1.2.1" + fast-json-stable-stringify "^2.1.0" + graphql-tag "^2.11.0" + loglevel "^1.6.8" + lru-cache "^6.0.0" + node-abort-controller "^3.0.1" + sha.js "^2.4.11" + uuid "^9.0.0" + whatwg-mimetype "^3.0.0" + +apollo-server-env@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-4.2.1.tgz#ea5b1944accdbdba311f179e4dfaeca482c20185" + integrity sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g== + dependencies: + node-fetch "^2.6.7" + +apollo-server-errors@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz#ba5c00cdaa33d4cbd09779f8cb6f47475d1cd655" + integrity sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA== + +apollo-server-express@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/apollo-server-express/-/apollo-server-express-3.13.0.tgz#0d8d9bbba3b8b8264912d215f63fd44e74d5f42a" + integrity sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g== + dependencies: + "@types/accepts" "^1.3.5" + "@types/body-parser" "1.19.2" + "@types/cors" "2.8.12" + "@types/express" "4.17.14" + "@types/express-serve-static-core" "4.17.31" + accepts "^1.3.5" + apollo-server-core "^3.13.0" + apollo-server-types "^3.8.0" + body-parser "^1.19.0" + cors "^2.8.5" + parseurl "^1.3.3" + +apollo-server-plugin-base@^3.6.3, apollo-server-plugin-base@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz#c19cd137bc4c993ba2490ba2b571b0f3ce60a0cd" + integrity sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw== + dependencies: + apollo-server-types "^3.8.0" + +apollo-server-plugin-response-cache@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz#ee48637ff487880d97fb7311838e6e9eea01233e" + integrity sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + apollo-server-plugin-base "^3.6.3" + apollo-server-types "^3.6.3" + +apollo-server-types@^3.6.3, apollo-server-types@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-3.8.0.tgz#d976b6967878681f715fe2b9e4dad9ba86b1346f" + integrity sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A== + dependencies: + "@apollo/utils.keyvaluecache" "^1.0.1" + "@apollo/utils.logger" "^1.0.0" + apollo-reporting-protobuf "^3.4.0" + apollo-server-env "^4.2.1" + +app-root-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== + +aproba@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@5.1.3, aria-query@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1js@^3.0.1, asn1js@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.5.tgz#5ea36820443dbefb51cc7f88a2ebb5b462114f38" + integrity sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ== + dependencies: + pvtsutils "^1.3.2" + pvutils "^1.1.3" + tslib "^2.4.0" + +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-retry@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== + dependencies: + retry "0.13.1" + +async@^3.2.3, async@^3.2.4: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +autoprefixer@^10.4.18: + version "10.4.20" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +axe-core@^4.9.1: + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== + +axios@^1.6.0, axios@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" + integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg== + dependencies: + deep-equal "^2.0.5" + +b4a@^1.0.1: + version "1.6.6" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== + +babel-loader@^8.2.5: + version "8.3.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8" + integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.0" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz#30320dfe3ffe1a336c15afdcdafd6fd615b25e33" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.6" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz#2deda57caef50f59c525aeb4964d3b2f867710c7" + integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + core-js-compat "^3.38.0" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz#addc47e240edd1da1058ebda03021f382bba785e" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" + +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + +babel-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + +base16@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" + integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ== + +base64-js@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + integrity sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw== + +base64-js@^1.2.0, base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bin-links@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.4.tgz#c3565832b8e287c85f109a02a17027d152a58a63" + integrity sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA== + dependencies: + cmd-shim "^6.0.0" + npm-normalize-package-bin "^3.0.0" + read-cmd-shim "^4.0.0" + write-file-atomic "^5.0.0" + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.2, body-parser@^1.19.0: + version "1.20.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +boxen@^5.0.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" + integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^6.2.0" + chalk "^4.1.0" + cli-boxes "^2.2.1" + string-width "^4.2.2" + type-fest "^0.20.2" + widest-line "^3.1.0" + wrap-ansi "^7.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.23.1, browserslist@^4.23.3: + version "4.23.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.3.tgz#debb029d3c93ebc97ffbc8d9cbb03403e227c800" + integrity sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA== + dependencies: + caniuse-lite "^1.0.30001646" + electron-to-chromium "^1.5.4" + node-releases "^2.0.18" + update-browserslist-db "^1.1.0" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +btoa-lite@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337" + integrity sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA== + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1: + version "4.0.8" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.8.tgz#1de6a71092d65d7766c4d8a522b261a6e787e8ea" + integrity sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== + dependencies: + node-gyp-build "^4.3.0" + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +busboy@1.6.0, busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +byte-size@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" + integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^18.0.0, cacache@^18.0.3: + version "18.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.4.tgz#4601d7578dadb59c66044e157d02a3314682d6a5" + integrity sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^10.0.1" + minipass "^7.0.3" + minipass-collect "^2.0.1" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + p-map "^4.0.0" + ssri "^10.0.0" + tar "^6.1.11" + unique-filename "^3.0.0" + +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +camelize@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3" + integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== + +caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646: + version "1.0.30001651" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138" + integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== + +canvas-renderer@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/canvas-renderer/-/canvas-renderer-2.2.1.tgz#c1d131f78a9799aca8af9679ad0a005052b65550" + integrity sha512-RrBgVL5qCEDIXpJ6NrzyRNoTnXxYarqm/cS/W6ERhUJts5UQtt/XPEosGN3rqUkZ4fjBArlnCbsISJ+KCFnIAg== + dependencies: + "@types/node" "*" + +capital-case@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + +change-case-all@1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +ci-info@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.0.0.tgz#65466f8b280fc019b9f50a5388115d17a63a44f2" + integrity sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg== + +classnames@^2.2.5: + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +clean-webpack-plugin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz#72947d4403d452f38ed61a9ff0ada8122aacd729" + integrity sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w== + dependencies: + del "^4.1.1" + +cli-boxes@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" + integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== + +cli-cursor@3.1.0, cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-highlight@^2.1.11: + version "2.1.11" + resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cli-spinners@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +client-only@0.0.1, client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cluster-key-slot@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" + integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== + +cmd-shim@6.0.3, cmd-shim@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.3.tgz#c491e9656594ba17ac83c4bd931590a9d6e26033" + integrity sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA== + +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.16: + version "2.0.20" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +columnify@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^11.0.0, commander@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + +commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +common-tags@1.8.2, common-tags@^1.8.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +constant-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +conventional-changelog-angular@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-core@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz#3c331b155d5b9850f47b4760aeddfc983a92ad49" + integrity sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^6.0.0" + conventional-commits-parser "^4.0.0" + dateformat "^3.0.3" + get-pkg-repo "^4.2.1" + git-raw-commits "^3.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^5.0.0" + normalize-package-data "^3.0.3" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + +conventional-changelog-preset-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz#14975ef759d22515d6eabae6396c2ae721d4c105" + integrity sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA== + +conventional-changelog-writer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz#d8d3bb5e1f6230caed969dcc762b1c368a8f7b01" + integrity sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ== + dependencies: + conventional-commits-filter "^3.0.0" + dateformat "^3.0.3" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + meow "^8.1.2" + semver "^7.0.0" + split "^1.0.1" + +conventional-commits-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz#bf1113266151dd64c49cd269e3eb7d71d7015ee2" + integrity sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.1" + +conventional-commits-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== + dependencies: + JSONStream "^1.3.5" + is-text-path "^1.0.1" + meow "^8.1.2" + split2 "^3.2.2" + +conventional-recommended-bump@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz#ec01f6c7f5d0e2491c2d89488b0d757393392424" + integrity sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^3.0.0" + conventional-commits-filter "^3.0.0" + conventional-commits-parser "^4.0.0" + git-raw-commits "^3.0.0" + git-semver-tags "^5.0.0" + meow "^8.1.2" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +cookie@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + +copy-to-clipboard@^3.3.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.37.1, core-js-compat@^3.38.0: + version "3.38.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.38.1.tgz#2bc7a298746ca5a7bcb9c164bcb120f2ebc09a09" + integrity sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw== + dependencies: + browserslist "^4.23.3" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^8.1.3, cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +cross-fetch@^3.1.5: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + +cross-inspect@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cross-inspect/-/cross-inspect-1.0.1.tgz#15f6f65e4ca963cf4cc1a2b5fef18f6ca328712b" + integrity sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A== + dependencies: + tslib "^2.4.0" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-background-parser@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/css-background-parser/-/css-background-parser-0.1.0.tgz#48a17f7fe6d4d4f1bca3177ddf16c5617950741b" + integrity sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA== + +css-box-shadow@1.0.0-3: + version "1.0.0-3" + resolved "https://registry.yarnpkg.com/css-box-shadow/-/css-box-shadow-1.0.0-3.tgz#9eaeb7140947bf5d649fc49a19e4bbaa5f602713" + integrity sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg== + +css-color-keywords@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" + integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg== + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-to-react-native@3.2.0, css-to-react-native@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32" + integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ== + dependencies: + camelize "^1.0.0" + css-color-keywords "^1.0.0" + postcss-value-parser "^4.0.2" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfilter@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae" + integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw== + +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +csstype@3.1.3, csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +cuint@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + integrity sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw== + +d3-array@2, d3-array@^2.3.0: + version "2.12.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-2.12.1.tgz#e20b41aafcdffdf5d50928004ececf815a465e81" + integrity sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ== + dependencies: + internmap "^1.0.0" + +"d3-color@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-2.0.0.tgz#8d625cab42ed9b8f601a1760a389f7ea9189d62e" + integrity sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ== + +"d3-color@1 - 3", d3-color@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-delaunay@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-5.3.0.tgz#b47f05c38f854a4e7b3cea80e0bb12e57398772d" + integrity sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w== + dependencies: + delaunator "4" + +"d3-format@1 - 2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-2.0.0.tgz#a10bcc0f986c372b729ba447382413aabf5b0767" + integrity sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA== + +d3-format@^1.4.4: + version "1.4.5" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" + integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== + +"d3-interpolate@1 - 2", "d3-interpolate@1.2.0 - 2": + version "2.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-2.0.1.tgz#98be499cfb8a3b94d4ff616900501a64abc91163" + integrity sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ== + dependencies: + d3-color "1 - 2" + +"d3-interpolate@1 - 3", d3-interpolate@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +d3-path@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" + integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== + +d3-scale-chromatic@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz#c13f3af86685ff91323dc2f0ebd2dabbd72d8bab" + integrity sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA== + dependencies: + d3-color "1 - 2" + d3-interpolate "1 - 2" + +d3-scale-chromatic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz#34c39da298b23c20e02f1a4b239bd0f22e7f1314" + integrity sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@^3.2.3: + version "3.3.0" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-3.3.0.tgz#28c600b29f47e5b9cd2df9749c206727966203f3" + integrity sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ== + dependencies: + d3-array "^2.3.0" + d3-format "1 - 2" + d3-interpolate "1.2.0 - 2" + d3-time "^2.1.1" + d3-time-format "2 - 3" + +d3-shape@^1.3.5: + version "1.3.7" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" + integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== + dependencies: + d3-path "1" + +"d3-time-format@2 - 3", d3-time-format@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-3.0.0.tgz#df8056c83659e01f20ac5da5fdeae7c08d5f1bb6" + integrity sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag== + dependencies: + d3-time "1 - 2" + +"d3-time@1 - 2", d3-time@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-2.1.1.tgz#e9d8a8a88691f4548e68ca085e5ff956724a6682" + integrity sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ== + dependencies: + d3-array "2" + +d3-time@^1.0.11: + version "1.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" + integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== + +d@1, d@^1.0.1, d@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.2.tgz#2aefd554b81981e7dccf72d6842ae725cb17e5de" + integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== + dependencies: + es5-ext "^0.10.64" + type "^2.7.2" + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +dataloader@^2.1.0, dataloader@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0" + integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== + +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +dayjs@^1.11.10, dayjs@^1.11.9: + version "1.11.13" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b" + integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +dedent@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== + +deep-equal@^2.0.5, deep-equal@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delaunator@4: + version "4.0.1" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-4.0.1.tgz#3d779687f57919a7a418f8ab947d3bddb6846957" + integrity sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +denque@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.11.0.tgz#ac0ce7ed68a54da22165a85e97a01d53f5eb2e27" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-browser@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca" + integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +discord-api-types@0.37.83: + version "0.37.83" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.83.tgz#a22a799729ceded8176ea747157837ddf4708b1f" + integrity sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA== + +discord-api-types@^0.37.77: + version "0.37.96" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.96.tgz#033ac9ae5b50b418c8cda6bf1eb784a5fbe23029" + integrity sha512-3HS1xf0GZUs98RrRIo4HRCU7sSnTDxQXral8oltYjhXGdQtI+JjLGpA8JF9gKfO9V6hUHgFHPIMWV8KIQDAaFg== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + +dom-accessibility-api@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz#993e925cc1d73f2c662e7d75dd5a5445259a8fd8" + integrity sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@~11.0.6: + version "11.0.6" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.6.tgz#f2c840fd924d7c77a94eff98f153331d876882d3" + integrity sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g== + dependencies: + dotenv "^16.4.4" + +dotenv@^16.0.0, dotenv@^16.0.3, dotenv@^16.3.1, dotenv@^16.4.4, dotenv@^16.4.5, dotenv@~16.4.5: + version "16.4.5" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +dotenv@^8.2.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" + integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== + +dset@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.6, ejs@^3.1.7: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.5.4: + version "1.5.12" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.12.tgz#ee31756eaa2e06f2aa606f170b7ad06dd402b4e4" + integrity sha512-tIhPkdlEoCL1Y+PToq3zRNehUaKp3wBX/sr7aclAWdIWjvqAe/Im/H0SiCM4c1Q8BLPHCdoJTol+ZblflydehA== + +email-addresses@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" + integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== + +emoji-regex@^10.2.1: + version "10.3.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^5.7.0: + version "5.17.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz#67bfbbcc2f81d511be77d686a90267ef7f898a15" + integrity sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +enquirer@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0, env-paths@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@7.13.0: + version "7.13.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.13.0.tgz#81fbb81e5da35d74e814941aeab7c325a606fb31" + integrity sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.2" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14: + version "0.10.64" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714" + integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== + dependencies: + es6-iterator "^2.0.3" + es6-symbol "^3.1.3" + esniff "^2.0.1" + next-tick "^1.1.0" + +es6-iterator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.4.tgz#f4e7d28013770b4208ecbf3e0bf14d3bcb557b8c" + integrity sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== + dependencies: + d "^1.0.2" + ext "^1.7.0" + +escalade@^3.1.1, escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + +escape-html@^1.0.3, escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + +eslint-config-standard-with-typescript@^43.0.1: + version "43.0.1" + resolved "https://registry.yarnpkg.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-43.0.1.tgz#977862d7d41b0e1f27f399137bbf7b2e017037ff" + integrity sha512-WfZ986+qzIzX6dcr4yGUyVb/l9N3Z8wPXCc5z/70fljs3UbWhhV+WxrfgsqMToRzuuyX9MqZ974pq2UPhDTOcA== + dependencies: + "@typescript-eslint/parser" "^6.4.0" + eslint-config-standard "17.1.0" + +eslint-config-standard@17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.8.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8" + integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g== + dependencies: + aria-query "~5.1.3" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.9.1" + axobject-query "~3.1.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.19" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.0" + +eslint-plugin-prettier@^5.1.3: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" + integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== + dependencies: + prettier-linter-helpers "^1.0.0" + synckit "^0.9.1" + +eslint-plugin-promise@^6.1.1: + version "6.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz#acd3fd7d55cead7a10f92cf698f36c0aafcd717a" + integrity sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ== + +eslint-plugin-react-hooks@^4.6.0: + version "4.6.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react@^7.34.0: + version "7.35.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41" + integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.19" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" + +eslint-plugin-tailwindcss@^3.14.3: + version "3.17.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.17.4.tgz#363d2a5d15e80b4cb1bb67054430a8a6e562c014" + integrity sha512-gJAEHmCq2XFfUP/+vwEfEJ9igrPeZFg+skeMtsxquSQdxba9XRk5bn0Bp9jxG1VV9/wwPKi1g3ZjItu6MIjhNg== + dependencies: + fast-glob "^3.2.5" + postcss "^8.4.4" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +esniff@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/esniff/-/esniff-2.0.1.tgz#a4d4b43a5c71c7ec51c51098c1d8a29081f9b308" + integrity sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== + dependencies: + d "^1.0.1" + es5-ext "^0.10.62" + event-emitter "^0.3.5" + type "^2.7.2" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eth-rpc-errors@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" + integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== + dependencies: + fast-safe-stringify "^2.0.6" + +ethereum-blockies-base64@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" + integrity sha512-Vg2HTm7slcWNKaRhCUl/L3b4KrB8ohQXdd5Pu3OI897EcR6tVRvUqdTwAyx+dnmoDzj8e2bwBLDQ50ByFmcz6w== + dependencies: + pnglib "0.0.1" + +ethers@^6.11.1: + version "6.13.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.13.2.tgz#4b67d4b49e69b59893931a032560999e5e4419fe" + integrity sha512-9VkriTTed+/27BGuY1s0hf441kqwHJ1wtN2edksEtiRvXx+soxRX3iSXTfFqq2+YwrOqbDoTHjIhQnjJRlzKmg== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "18.15.13" + aes-js "4.0.0-beta.5" + tslib "2.4.0" + ws "8.17.1" + +event-emitter@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== + dependencies: + d "1" + es5-ext "~0.10.14" + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + +execa@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +expect@^29.0.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +express@^4.18.2: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" + integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== + dependencies: + type "^2.7.2" + +extension-port-stream@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/extension-port-stream/-/extension-port-stream-2.1.1.tgz#ec11f2a5ed95655d8c40805d7cb0c39939ee9ef4" + integrity sha512-qknp5o5rj2J9CRKfVB8KJr+uXQlrojNZzdESUPhKYLXf97TPcGf6qWWKmpsNNtUyOdzFhab1ON0jzouNxHHvow== + dependencies: + webextension-polyfill ">=0.10.0 <1.0" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extract-files@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-11.0.0.tgz#b72d428712f787eef1f5193aff8ab5351ca8469a" + integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== + +fast-decode-uri-component@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz#46f8b6c22b30ff7a81357d4f59abfae938202543" + integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-querystring@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fast-querystring/-/fast-querystring-1.1.2.tgz#a6d24937b4fc6f791b4ee31dcb6f53aeafb89f53" + integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== + dependencies: + fast-decode-uri-component "^1.0.1" + +fast-safe-stringify@^2.0.6: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-uri@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.1.tgz#cddd2eecfc83a71c1be2cc2ef2061331be8a7134" + integrity sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw== + +fast-url-parser@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" + integrity sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ== + dependencies: + punycode "^1.3.2" + +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + +faunadb@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/faunadb/-/faunadb-4.8.0.tgz#7adc5312dd5a508942ba1ad567c869e4f874b177" + integrity sha512-pjl5WUYQ8GqM4ESk3mv0RXfxtQMHWb92XWkxjf3nWiAkf2HVtsENfTbyGPunzw4zDbdhn9aQSSxbwahaLLDR7Q== + dependencies: + base64-js "^1.2.0" + boxen "^5.0.1" + btoa-lite "^1.0.0" + chalk "^4.1.1" + cross-fetch "^3.1.5" + dotenv "^8.2.0" + fn-annotate "^1.1.3" + node-abort-controller "^3.0.1" + object-assign "^4.1.0" + util-deprecate "^1.0.2" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fbemitter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" + integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== + dependencies: + fbjs "^3.0.0" + +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0, fbjs@^3.0.1: + version "3.0.5" + resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.5.tgz#aa0edb7d5caa6340011790bd9249dbef8a81128d" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + +fflate@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.7.4.tgz#61587e5d958fdabb5a9368a302c25363f4f69f50" + integrity sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw== + +figures@3.2.0, figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +filename-reserved-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" + integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== + +filenamify@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" + integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== + dependencies: + filename-reserved-regex "^2.0.0" + strip-outer "^1.0.1" + trim-repeated "^1.0.0" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +flux@^4.0.1: + version "4.0.4" + resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" + integrity sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw== + dependencies: + fbemitter "^3.0.0" + fbjs "^3.0.1" + +fn-annotate@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fn-annotate/-/fn-annotate-1.2.0.tgz#28da000117dea61842fe61f353f41cf4c93a7a7e" + integrity sha512-j2gv2wkRhQgkJNf1ygdca8ynP3tK+a87bowc+RG81iWTye3yKIOeAkrKYv0Kqyh8yCeSyljOk3ZFelfXUFpirA== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + +formik@^2.4.5: + version "2.4.6" + resolved "https://registry.yarnpkg.com/formik/-/formik-2.4.6.tgz#4da75ca80f1a827ab35b08fd98d5a76e928c9686" + integrity sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g== + dependencies: + "@types/hoist-non-react-statics" "^3.3.1" + deepmerge "^2.1.1" + hoist-non-react-statics "^3.3.0" + lodash "^4.17.21" + lodash-es "^4.17.21" + react-fast-compare "^2.0.1" + tiny-warning "^1.0.2" + tslib "^2.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +front-matter@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-4.0.2.tgz#b14e54dc745cfd7293484f3210d15ea4edd7f4d5" + integrity sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg== + dependencies: + js-yaml "^3.13.1" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^11.1.0, fs-extra@^11.1.1, fs-extra@^11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fs@^0.0.1-security: + version "0.0.1-security" + resolved "https://registry.yarnpkg.com/fs/-/fs-0.0.1-security.tgz#8a7bd37186b6dddf3813f23858b57ecaaf5e41d4" + integrity sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1, get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-pkg-repo@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== + dependencies: + "@hutson/parse-repository-url" "^3.0.0" + hosted-git-info "^4.0.0" + through2 "^2.0.0" + yargs "^16.2.0" + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + +gh-pages@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.1.1.tgz#e80af927a081cb480657fde5a0b87ea2e77d6c74" + integrity sha512-upnohfjBwN5hBP9w2dPE7HO5JJTHzSGMV1JrLrHvNuqmjoYHg6TBrCcnEoorjG/e0ejbuvnwyKMdTyM40PEByw== + dependencies: + async "^3.2.4" + commander "^11.0.0" + email-addresses "^5.0.0" + filenamify "^4.3.0" + find-cache-dir "^3.3.1" + fs-extra "^11.1.1" + globby "^6.1.0" + +git-raw-commits@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-3.0.0.tgz#5432f053a9744f67e8db03dbc48add81252cfdeb" + integrity sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw== + dependencies: + dargs "^7.0.0" + meow "^8.1.2" + split2 "^3.2.2" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15" + integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA== + dependencies: + meow "^8.1.2" + semver "^7.0.0" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-14.0.0.tgz#18ce834726d5fbca0c25a4555101aa277017418f" + integrity sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ== + dependencies: + git-up "^7.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + dependencies: + ini "^1.3.2" + +glob-parent@6.0.2, glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@10.3.10: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^10.2.2, glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^9.2.0: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@11.1.0, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +goober@^2.1.10: + version "2.1.14" + resolved "https://registry.yarnpkg.com/goober/-/goober-2.1.14.tgz#4a5c94fc34dc086a8e6035360ae1800005135acd" + integrity sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg== + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@4.2.11, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +graphql-config@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-5.1.2.tgz#ecd7b59de27b706e4714720f550dbeb0caa1bc10" + integrity sha512-kVwUuFz1h9u7B0nDPtnLFWN+x018niaH3zi1ChFCNfbunhDVJ911Z3YcglK5EfDfySeeH+zCa1aGxd1wMgNd7g== + dependencies: + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/json-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.0.0" + "@graphql-tools/merge" "^9.0.0" + "@graphql-tools/url-loader" "^8.0.0" + "@graphql-tools/utils" "^10.0.0" + cosmiconfig "^9.0.0" + jiti "^1.18.2" + minimatch "^9.0.5" + string-env-interpolation "^1.0.1" + tslib "^2.4.0" + +graphql-parse-resolve-info@^4.14.0: + version "4.14.0" + resolved "https://registry.yarnpkg.com/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz#b2f75fea037ed6763f78154d2bf51ee4c3c6fb9c" + integrity sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA== + dependencies: + debug "^4.1.1" + tslib "^2.0.1" + +graphql-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-6.1.0.tgz#f4eb2107967af3c7a5907eb3131c671eac89be4f" + integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + cross-fetch "^3.1.5" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql-ws@^5.14.0, graphql-ws@^5.14.2: + version "5.16.0" + resolved "https://registry.yarnpkg.com/graphql-ws/-/graphql-ws-5.16.0.tgz#849efe02f384b4332109329be01d74c345842729" + integrity sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A== + +graphql@^15.8.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.9.0.tgz#4e8ca830cfd30b03d44d3edd9cac2b0690304b53" + integrity sha512-GCOQdvm7XxV1S4U4CGrsdlEN37245eC8P9zaYCMr6K1BG0IPGy5lUwmJsEOGyl1GD6HXjOtl2keCP9asRBwNvA== + +graphql@^16.6.0: + version "16.9.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.9.0.tgz#1c310e63f16a49ce1fbb230bd0a000e99f6f115f" + integrity sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw== + +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1, has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +has-unicode@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +hasura-cli@2.36.2: + version "2.36.2" + resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" + integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== + dependencies: + axios "^1.6.0" + chalk-template "^1.1.0" + +header-case@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== + dependencies: + capital-case "^1.0.4" + tslib "^2.0.3" + +hex-rgb@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/hex-rgb/-/hex-rgb-4.3.0.tgz#af5e974e83bb2fefe44d55182b004ec818c07776" + integrity sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^7.0.0, hosted-git-info@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.2.tgz#9b751acac097757667f30114607ef7b661ff4f17" + integrity sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w== + dependencies: + lru-cache "^10.0.1" + +http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" + integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +idb@^7.0.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +ieee754@^1.1.13, ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^6.0.4: + version "6.0.5" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.5.tgz#ef8d61eab7da169078723d1f82833b36e200b0dd" + integrity sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A== + dependencies: + minimatch "^9.0.0" + +ignore@^5.0.4, ignore@^5.2.0, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +immutable@~3.7.6: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-4.0.0.tgz#2710b8d66817d232e16f4166e319248d3d5492e2" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + +import-local@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +inflected@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/inflected/-/inflected-2.1.0.tgz#2816ac17a570bbbc8303ca05bca8bf9b3f959687" + integrity sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.2, ini@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +ini@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.3.tgz#4c359675a6071a46985eb39b14e4a2c0ec98a795" + integrity sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg== + +init-package-json@6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.3.tgz#2552fba75b6eed2495dc97f44183e2e5a5bcf8b0" + integrity sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w== + dependencies: + "@npmcli/package-json" "^5.0.0" + npm-package-arg "^11.0.0" + promzard "^1.0.0" + read "^3.0.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "^5.0.0" + +inquirer@^8.0.0, inquirer@^8.2.4: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +internal-slot@^1.0.4, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + +internmap@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" + integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== + +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ioredis@^5.3.2: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.4.1.tgz#1c56b70b759f01465913887375ed809134296f40" + integrity sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA== + dependencies: + "@ioredis/commands" "^1.1.1" + cluster-key-slot "^1.1.0" + debug "^4.3.4" + denque "^2.1.0" + lodash.defaults "^4.2.0" + lodash.isarguments "^3.1.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + standard-as-callback "^2.1.0" + +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.2, is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea" + integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@4.0.3, is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-2.0.2.tgz#1c0884d3012c841556243483aa5d522f47396d2a" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + +is-map@^2.0.2, is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-set@^2.0.2, is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-2.0.2.tgz#f1105ced1fe4de906a5f39553e7d3803fd804649" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== + dependencies: + tslib "^2.0.3" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isexe@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jdenticon@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jdenticon/-/jdenticon-3.2.0.tgz#b5b9ef413cb66f70c600d6e69a764c977f248a46" + integrity sha512-z6Iq3fTODUMSOiR2nNYrqigS6Y0GvdXfyQWrUby7htDHvX7GNEwaWR4hcaL+FmhEgBe08Xkup/BKxXQhDJByPA== + dependencies: + canvas-renderer "~2.2.0" + +jest-canvas-mock@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" + integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== + dependencies: + cssfontparser "^1.2.1" + moo-color "^1.0.2" + +"jest-diff@>=29.4.3 < 30", jest-diff@^29.4.1, jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest-worker@^27.4.5: + version "27.5.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" + integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jiti@^1.17.1, jiti@^1.18.2, jiti@^1.21.0: + version "1.21.6" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" + integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== + +jose@^4.15.5: + version "4.15.9" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" + integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== + +jose@^5.0.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/jose/-/jose-5.7.0.tgz#5c3a6eb811235e692e1af4891904b7b91b204f57" + integrity sha512-3P9qfTYDVnNn642LCAqIKbTGb9a1TBxZ9ti5zEVEr48aDdflgRjhspWFb6WM4PzAfFbGMJYC4+803v8riCRAKw== + +js-cookie@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.10.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0, json-parse-even-better-errors@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz#b43d35e89c0f3be6b5fbbe9dc6c82467b30c28da" + integrity sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ== + +json-rpc-engine@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz#bf5ff7d029e1c1bf20cb6c0e9f348dcd8be5a393" + integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== + dependencies: + "@metamask/safe-event-emitter" "^2.0.0" + eth-rpc-errors "^4.0.2" + +json-rpc-middleware-stream@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/json-rpc-middleware-stream/-/json-rpc-middleware-stream-4.2.3.tgz#08340846ffaa2a60287930773546eb4b7f7dbba2" + integrity sha512-4iFb0yffm5vo3eFKDbQgke9o17XBcLQ2c3sONrXSbcOLzP8LTojqo8hRGVgtJShhm5q4ZDSNq039fAx9o65E1w== + dependencies: + "@metamask/safe-event-emitter" "^3.0.0" + json-rpc-engine "^6.1.0" + readable-stream "^2.3.3" + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz#f4cd0bd0a5e8fe1df25aaf5ba118b099fd992d5b" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonc-parser@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" + integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0, jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonwebtoken@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +just-diff-apply@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== + +just-diff@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +keyv@^4.4.0, keyv@^4.5.3, keyv@~4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + +lerna@^8.1.8: + version "8.1.8" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.1.8.tgz#9edc9ce4fb4b6c7e22c994e9ef91d4e0370595b2" + integrity sha512-Rmo5ShMx73xM2CUcRixjmpZIXB7ZFlWEul1YvJyx/rH4onAwDHtUGD7Rx4NZYL8QSRiQHroglM2Oyq+WqA4BYg== + dependencies: + "@lerna/create" "8.1.8" + "@npmcli/arborist" "7.5.4" + "@npmcli/package-json" "5.2.0" + "@npmcli/run-script" "8.1.0" + "@nx/devkit" ">=17.1.2 < 20" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + aproba "2.0.0" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.3" + color-support "1.1.3" + columnify "1.6.0" + console-control-strings "^1.1.0" + conventional-changelog-angular "7.0.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "1.5.3" + envinfo "7.13.0" + execa "5.0.0" + fs-extra "^11.2.0" + get-port "5.1.1" + get-stream "6.0.0" + git-url-parse "14.0.0" + glob-parent "6.0.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + import-local "3.1.0" + ini "^1.3.8" + init-package-json "6.0.3" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + jest-diff ">=29.4.3 < 30" + js-yaml "4.1.0" + libnpmaccess "8.0.6" + libnpmpublish "9.0.9" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "11.0.2" + npm-packlist "8.0.2" + npm-registry-fetch "^17.1.0" + nx ">=17.1.2 < 20" + p-map "4.0.0" + p-map-series "2.1.0" + p-pipe "3.1.0" + p-queue "6.6.2" + p-reduce "2.1.0" + p-waterfall "2.1.1" + pacote "^18.0.6" + pify "5.0.0" + read-cmd-shim "4.0.0" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.8" + set-blocking "^2.0.0" + signal-exit "3.0.7" + slash "3.0.0" + ssri "^10.0.6" + string-width "^4.2.3" + strip-ansi "^6.0.1" + strong-log-transformer "2.1.0" + tar "6.2.1" + temp-dir "1.0.0" + typescript ">=3 < 6" + upath "2.0.1" + uuid "^10.0.0" + validate-npm-package-license "3.0.4" + validate-npm-package-name "5.0.1" + wide-align "1.1.5" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libnpmaccess@8.0.6: + version "8.0.6" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.6.tgz#73be4c236258babc0a0bca6d3b6a93a6adf937cf" + integrity sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw== + dependencies: + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.1" + +libnpmpublish@9.0.9: + version "9.0.9" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.9.tgz#e737378c09f09738377d2a276734be35cffb85e2" + integrity sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg== + dependencies: + ci-info "^4.0.0" + normalize-package-data "^6.0.1" + npm-package-arg "^11.0.2" + npm-registry-fetch "^17.0.1" + proc-log "^4.2.0" + semver "^7.3.7" + sigstore "^2.2.0" + ssri "^10.0.6" + +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb" + integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow== + +linebreak@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.1.0.tgz#831cf378d98bced381d8ab118f852bd50d81e46b" + integrity sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ== + dependencies: + base64-js "0.0.8" + unicode-trie "^2.0.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +listr2@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.5.tgz#9dcc50221583e8b4c71c43f9c7dfd0ef546b75d5" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +load-json-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +loader-utils@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.curry@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" + integrity sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.defaults@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== + +lodash.flow@^3.3.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a" + integrity sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isarguments@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +log-update@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== + dependencies: + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +loglevel@^1.6.8: + version "1.9.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.1.tgz#d63976ac9bcd03c7c873116d41c2a85bafff1be7" + integrity sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lottie-react@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/lottie-react/-/lottie-react-2.4.0.tgz#f7249eee2b1deee70457a2d142194fdf2456e4bd" + integrity sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w== + dependencies: + lottie-web "^5.10.2" + +lottie-web@^5.10.2: + version "5.12.2" + resolved "https://registry.yarnpkg.com/lottie-web/-/lottie-web-5.12.2.tgz#579ca9fe6d3fd9e352571edd3c0be162492f68e5" + integrity sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg== + +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-2.0.2.tgz#64c2324a2250bf7c37c5901e76a5b5309301160b" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== + dependencies: + tslib "^2.0.3" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +"lru-cache@7.10.1 - 7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" + integrity sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ== + +lru-cache@^10.0.1, lru-cache@^10.2.0, lru-cache@^10.2.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + +magic-bytes.js@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/magic-bytes.js/-/magic-bytes.js-1.10.0.tgz#c41cf4bc2f802992b05e64962411c9dd44fdef92" + integrity sha512-/k20Lg2q8LE5xiaaSkMXk4sfvI+9EGEykFS4b0CHHGWqDYU0bGUFSwchNOMA56D7TCs9GwVTkqe9als1/ns8UQ== + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.2, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-fetch-happen@^13.0.0, make-fetch-happen@^13.0.1: + version "13.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" + integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== + dependencies: + "@npmcli/agent" "^2.0.0" + cacache "^18.0.0" + http-cache-semantics "^4.1.1" + is-lambda "^1.0.1" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + proc-log "^4.2.0" + promise-retry "^2.0.1" + ssri "^10.0.0" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +meow@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +meros@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/meros/-/meros-1.3.0.tgz#c617d2092739d55286bf618129280f362e6242f2" + integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + +minimatch@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-2.0.1.tgz#1621bc77e12258a12c60d34e2276ec5c20680863" + integrity sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw== + dependencies: + minipass "^7.0.3" + +minipass-fetch@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" + integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^2.1.3: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== + +mock-socket@^9.3.1: + version "9.3.1" + resolved "https://registry.yarnpkg.com/mock-socket/-/mock-socket-9.3.1.tgz#24fb00c2f573c84812aa4a24181bb025de80cc8e" + integrity sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw== + +modify-values@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moo-color@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" + integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== + dependencies: + color-name "^1.1.4" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mute-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +mz@^2.4.0, mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +nanoclone@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" + integrity sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA== + +nanoid@^3.3.6, nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3, negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-auth@^4.24.6: + version "4.24.7" + resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.24.7.tgz#0a14c1e35b4a2c0c1ecff95c295b74bd48d3817a" + integrity sha512-iChjE8ov/1K/z98gdKbn2Jw+2vLgJtVV39X+rCP5SGnVQuco7QOr19FRNGMIrD8d3LYhHWV9j9sKLzq1aDWWQQ== + dependencies: + "@babel/runtime" "^7.20.13" + "@panva/hkdf" "^1.0.2" + cookie "^0.5.0" + jose "^4.15.5" + oauth "^0.9.15" + openid-client "^5.4.0" + preact "^10.6.3" + preact-render-to-string "^5.1.19" + uuid "^8.3.2" + +next-pwa@^5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/next-pwa/-/next-pwa-5.6.0.tgz#f7b1960c4fdd7be4253eb9b41b612ac773392bf4" + integrity sha512-XV8g8C6B7UmViXU8askMEYhWwQ4qc/XqJGnexbLV68hzKaGHZDMtHsm2TNxFcbR7+ypVuth/wwpiIlMwpRJJ5A== + dependencies: + babel-loader "^8.2.5" + clean-webpack-plugin "^4.0.0" + globby "^11.0.4" + terser-webpack-plugin "^5.3.3" + workbox-webpack-plugin "^6.5.4" + workbox-window "^6.5.4" + +next-tick@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" + integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== + +next@^14.1.2: + version "14.2.5" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.5.tgz#afe4022bb0b752962e2205836587a289270efbea" + integrity sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA== + dependencies: + "@next/env" "14.2.5" + "@swc/helpers" "0.5.5" + busboy "1.6.0" + caniuse-lite "^1.0.30001579" + graceful-fs "^4.2.11" + postcss "8.4.31" + styled-jsx "5.1.1" + optionalDependencies: + "@next/swc-darwin-arm64" "14.2.5" + "@next/swc-darwin-x64" "14.2.5" + "@next/swc-linux-arm64-gnu" "14.2.5" + "@next/swc-linux-arm64-musl" "14.2.5" + "@next/swc-linux-x64-gnu" "14.2.5" + "@next/swc-linux-x64-musl" "14.2.5" + "@next/swc-win32-arm64-msvc" "14.2.5" + "@next/swc-win32-ia32-msvc" "14.2.5" + "@next/swc-win32-x64-msvc" "14.2.5" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +nock@^13.5.0: + version "13.5.5" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.5.tgz#cd1caaca281d42be17d51946367a3d53a6af3e78" + integrity sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA== + dependencies: + debug "^4.1.0" + json-stringify-safe "^5.0.1" + propagate "^2.0.0" + +node-abort-controller@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + +node-gyp-build@^4.3.0: + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + +node-gyp@^10.0.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.2.0.tgz#80101c4aa4f7ab225f13fcc8daaaac4eb1a8dd86" + integrity sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + glob "^10.3.10" + graceful-fs "^4.2.6" + make-fetch-happen "^13.0.0" + nopt "^7.0.0" + proc-log "^4.1.0" + semver "^7.3.5" + tar "^6.2.1" + which "^4.0.0" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-machine-id@1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267" + integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== + +node-releases@^2.0.18: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + +nopt@^7.0.0, nopt@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== + dependencies: + abbrev "^2.0.0" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^6.0.0, normalize-package-data@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.2.tgz#a7bc22167fe24025412bcff0a9651eb768b03506" + integrity sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g== + dependencies: + hosted-git-info "^7.0.0" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +npm-bundled@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.1.tgz#cca73e15560237696254b10170d8f86dad62da25" + integrity sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0, npm-install-checks@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.2.tgz#1ef8006c4a9e9204ddde403035f7ff7d718251ca" + integrity sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-package-arg@^11.0.0, npm-package-arg@^11.0.2: + version "11.0.3" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.3.tgz#dae0c21199a99feca39ee4bfb074df3adac87e2d" + integrity sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw== + dependencies: + hosted-git-info "^7.0.0" + proc-log "^4.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@8.0.2, npm-packlist@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.2.tgz#5b8d1d906d96d21c85ebbeed2cf54147477c8478" + integrity sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA== + dependencies: + ignore-walk "^6.0.4" + +npm-pick-manifest@^9.0.0, npm-pick-manifest@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz#83562afde52b0b07cb6244361788d319ce7e8636" + integrity sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA== + dependencies: + npm-install-checks "^6.0.0" + npm-normalize-package-bin "^3.0.0" + npm-package-arg "^11.0.0" + semver "^7.3.5" + +npm-registry-fetch@^17.0.0, npm-registry-fetch@^17.0.1, npm-registry-fetch@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz#fb69e8e762d456f08bda2f5f169f7638fb92beb1" + integrity sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA== + dependencies: + "@npmcli/redact" "^2.0.0" + jsonparse "^1.3.1" + make-fetch-happen "^13.0.0" + minipass "^7.0.2" + minipass-fetch "^3.0.0" + minizlib "^2.1.2" + npm-package-arg "^11.0.0" + proc-log "^4.0.0" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== + +nx@19.6.1, "nx@>=17.1.2 < 20": + version "19.6.1" + resolved "https://registry.yarnpkg.com/nx/-/nx-19.6.1.tgz#883fc5cd36fdbe10b14294d8d0a1bfe2872c469d" + integrity sha512-F7NH8/lMwd2ogPjvjMDGUJMaRuEc60DEmpd8U/3R7WgFRHWuF5ily1AKQiLfQg6V5ArQUrkBJesulTAnlHR7+g== + dependencies: + "@napi-rs/wasm-runtime" "0.2.4" + "@nrwl/tao" "19.6.1" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "3.0.0-rc.46" + "@zkochan/js-yaml" "0.0.7" + axios "^1.7.4" + chalk "^4.1.0" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^8.0.1" + dotenv "~16.4.5" + dotenv-expand "~11.0.6" + enquirer "~2.3.6" + figures "3.2.0" + flat "^5.0.2" + front-matter "^4.0.2" + fs-extra "^11.1.0" + ignore "^5.0.4" + jest-diff "^29.4.1" + jsonc-parser "3.2.0" + lines-and-columns "~2.0.3" + minimatch "9.0.3" + node-machine-id "1.1.12" + npm-run-path "^4.0.1" + open "^8.4.0" + ora "5.3.0" + semver "^7.5.3" + string-width "^4.2.3" + strong-log-transformer "^2.1.0" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^4.1.2" + tslib "^2.3.0" + yargs "^17.6.2" + yargs-parser "21.1.1" + optionalDependencies: + "@nx/nx-darwin-arm64" "19.6.1" + "@nx/nx-darwin-x64" "19.6.1" + "@nx/nx-freebsd-x64" "19.6.1" + "@nx/nx-linux-arm-gnueabihf" "19.6.1" + "@nx/nx-linux-arm64-gnu" "19.6.1" + "@nx/nx-linux-arm64-musl" "19.6.1" + "@nx/nx-linux-x64-gnu" "19.6.1" + "@nx/nx-linux-x64-musl" "19.6.1" + "@nx/nx-win32-arm64-msvc" "19.6.1" + "@nx/nx-win32-x64-msvc" "19.6.1" + +oauth@^0.9.15: + version "0.9.15" + resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA== + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7, object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +oidc-token-hash@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz#9a229f0a1ce9d4fc89bcaee5478c97a889e7b7b6" + integrity sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +openid-client@^5.4.0: + version "5.6.5" + resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.6.5.tgz#c149ad07b9c399476dc347097e297bbe288b8b00" + integrity sha512-5P4qO9nGJzB5PI0LFlhj4Dzg3m4odt0qsJTfyEtZyOlkgpILwEioOhVVJOrS1iVH494S4Ee5OCjjg6Bf5WOj3w== + dependencies: + jose "^4.15.5" + lru-cache "^6.0.0" + object-hash "^2.2.0" + oidc-token-hash "^5.0.3" + +optimism@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.18.0.tgz#e7bb38b24715f3fdad8a9a7fc18e999144bbfa63" + integrity sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ== + dependencies: + "@wry/caches" "^1.0.0" + "@wry/context" "^0.7.0" + "@wry/trie" "^0.4.3" + tslib "^2.3.0" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +ora@5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.3.0.tgz#fb832899d3a1372fe71c8b2c534bbfe74961bb6f" + integrity sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g== + dependencies: + bl "^4.0.3" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + log-symbols "^4.0.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@3.1.0, p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map-series@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" + integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== + +p-map@4.0.0, p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-pipe@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== + +p-queue@6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" + integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== + dependencies: + p-reduce "^2.0.0" + +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + +pacote@^18.0.0, pacote@^18.0.6: + version "18.0.6" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-18.0.6.tgz#ac28495e24f4cf802ef911d792335e378e86fac7" + integrity sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A== + dependencies: + "@npmcli/git" "^5.0.0" + "@npmcli/installed-package-contents" "^2.0.1" + "@npmcli/package-json" "^5.1.0" + "@npmcli/promise-spawn" "^7.0.0" + "@npmcli/run-script" "^8.0.0" + cacache "^18.0.0" + fs-minipass "^3.0.0" + minipass "^7.0.2" + npm-package-arg "^11.0.0" + npm-packlist "^8.0.0" + npm-pick-manifest "^9.0.0" + npm-registry-fetch "^17.0.0" + proc-log "^4.0.0" + promise-retry "^2.0.1" + sigstore "^2.2.0" + ssri "^10.0.0" + tar "^6.1.11" + +pako@^0.2.5: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== + dependencies: + json-parse-even-better-errors "^3.0.0" + just-diff "^6.0.0" + just-diff-apply "^5.2.0" + +parse-css-color@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/parse-css-color/-/parse-css-color-0.2.1.tgz#b687a583f2e42e66ffdfce80a570706966e807c9" + integrity sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg== + dependencies: + color-name "^1.1.4" + hex-rgb "^4.1.0" + +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@^1.3.3, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.10.1, path-scurry@^1.11.1, path-scurry@^1.6.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@8.11.5: + version "8.11.5" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128" + integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pnglib@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pnglib/-/pnglib-0.0.1.tgz#f9ab6f9c688f4a9d579ad8be28878a716e30c096" + integrity sha512-95ChzOoYLOPIyVmL+Y6X+abKGXUJlvOVLkB1QQkyXl7Uczc6FElUy/x01NS7r2GX6GRezloO/ecCX9h4U9KadA== + +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-nested@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1: + version "6.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + +postcss@^8.4.23, postcss@^8.4.35, postcss@^8.4.4: + version "8.4.41" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.41.tgz#d6104d3ba272d882fe18fc07d15dc2da62fa2681" + integrity sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +preact-render-to-string@^5.1.19: + version "5.2.6" + resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz#0ff0c86cd118d30affb825193f18e92bd59d0604" + integrity sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw== + dependencies: + pretty-format "^3.8.0" + +preact@^10.6.3: + version "10.23.2" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.2.tgz#52deec92796ae0f0cc6b034d9c66e0fbc1b837dc" + integrity sha512-kKYfePf9rzKnxOAKDpsWhg/ysrHPqT+yQ7UW4JjdnqjFIeNUnNcEJvhuA8fDenxAGWzUqtd51DfVg7xp/8T9NA== + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-tailwindcss@^0.5.12: + version "0.5.14" + resolved "https://registry.yarnpkg.com/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.14.tgz#4482eed357d5e22eac259541c70aca5a4c7b9d5c" + integrity sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q== + +prettier@^3.2.5: + version "3.3.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.3.tgz#30c54fe0be0d8d12e6ae61dbb10109ea00d53105" + integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +pretty-format@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== + +proc-log@^4.0.0, proc-log@^4.1.0, proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +proggy@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/proggy/-/proggy-2.0.0.tgz#154bb0e41d3125b518ef6c79782455c2c47d94e1" + integrity sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A== + +prom-client@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" + integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== + dependencies: + tdigest "^0.1.1" + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-3.0.1.tgz#3570f7a3f2aaaf8e703623a552cd74749688cf19" + integrity sha512-utl+0x8gIDasV5X+PI5qWEPqH6fJS0pFtQ/4gZ95xfEFb/89dmh+/b895TbFDBLiafBvxD/PGTKfvxl4kH/pQg== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== + dependencies: + asap "~2.0.3" + +promzard@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.2.tgz#2226e7c6508b1da3471008ae17066a7c3251e660" + integrity sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ== + dependencies: + read "^3.0.1" + +prop-types@^15, prop-types@^15.7.2, prop-types@^15.8.1: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +propagate@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/propagate/-/propagate-2.0.1.tgz#40cdedab18085c792334e64f0ac17256d38f9a45" + integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== + +property-expr@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/property-expr/-/property-expr-2.0.6.tgz#f77bc00d5928a6c748414ad12882e83f24aec1e8" + integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-color@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" + integrity sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA== + +pvtsutils@^1.3.2, pvtsutils@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" + integrity sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA== + dependencies: + tslib "^2.6.1" + +pvutils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.3.tgz#f35fc1d27e7cd3dfbd39c0826d173e806a03f5a3" + integrity sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ== + +qrcode.react@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8" + integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +rc-slider@^10.6.2: + version "10.6.2" + resolved "https://registry.yarnpkg.com/rc-slider/-/rc-slider-10.6.2.tgz#8bd3b63b24f2f3682ea1bf86d021073189cf33eb" + integrity sha512-FjkoFjyvUQWcBo1F3RgSglky3ar0+qHLM41PlFVYB4Bj3RD8E/Mv7kqMouLFBU+3aFglMzzctAIWRwajEuueSw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.36.0" + +rc-util@^5.36.0: + version "5.43.0" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.43.0.tgz#bba91fbef2c3e30ea2c236893746f3e9b05ecc4c" + integrity sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +react-base16-styling@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" + integrity sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ== + dependencies: + base16 "^1.0.0" + lodash.curry "^4.0.1" + lodash.flow "^3.3.0" + pure-color "^1.2.0" + +react-copy-to-clipboard@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz#09aae5ec4c62750ccb2e6421a58725eabc41255c" + integrity sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A== + dependencies: + copy-to-clipboard "^3.3.1" + prop-types "^15.8.1" + +react-dom@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-error-boundary@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/react-error-boundary/-/react-error-boundary-3.1.4.tgz#255db92b23197108757a888b01e5b729919abde0" + integrity sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA== + dependencies: + "@babel/runtime" "^7.12.5" + +react-fast-compare@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9" + integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw== + +react-ga4@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/react-ga4/-/react-ga4-2.1.0.tgz#56601f59d95c08466ebd6edfbf8dede55c4678f9" + integrity sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ== + +react-hot-toast@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/react-hot-toast/-/react-hot-toast-2.4.1.tgz#df04295eda8a7b12c4f968e54a61c8d36f4c0994" + integrity sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ== + dependencies: + goober "^2.1.10" + +react-intersection-observer@^9.13.0: + version "9.13.0" + resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.13.0.tgz#ee10827954cf6ccc204d027f8400a6ddb8df163a" + integrity sha512-y0UvBfjDiXqC8h0EWccyaj4dVBWMxgEx0t5RGNzQsvkfvZwugnKwxpu70StY4ivzYuMajavwUDjH4LJyIki9Lw== + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0, react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-json-view@^1.21.3: + version "1.21.3" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.21.3.tgz#f184209ee8f1bf374fb0c41b0813cff54549c475" + integrity sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw== + dependencies: + flux "^4.0.1" + react-base16-styling "^0.6.0" + react-lifecycles-compat "^3.0.4" + react-textarea-autosize "^8.3.2" + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-paginate@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-8.2.0.tgz#947c3dcb444a6c16c1bcf8361871aa135baa3dcd" + integrity sha512-sJCz1PW+9PNIjUSn919nlcRVuleN2YPoFBOvL+6TPgrH/3lwphqiSOgdrLafLdyLDxsgK+oSgviqacF4hxsDIw== + dependencies: + prop-types "^15" + +react-textarea-autosize@^8.3.2: + version "8.5.3" + resolved "https://registry.yarnpkg.com/react-textarea-autosize/-/react-textarea-autosize-8.5.3.tgz#d1e9fe760178413891484847d3378706052dd409" + integrity sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ== + dependencies: + "@babel/runtime" "^7.20.13" + use-composed-ref "^1.3.0" + use-latest "^1.2.1" + +react@^18.2.0: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + +read-cmd-shim@4.0.0, read-cmd-shim@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/read/-/read-3.0.1.tgz#926808f0f7c83fa95f1ef33c0e2c09dbb28fd192" + integrity sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw== + dependencies: + mute-stream "^1.0.0" + +readable-stream@^2.3.3, readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +redis-errors@^1.0.0, redis-errors@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" + integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== + +redis-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" + integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== + dependencies: + redis-errors "^1.0.0" + +reflect-metadata@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz#3ab04c32a8390b770712b7a8633972702d278859" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" + +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +rehackt@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/rehackt/-/rehackt-0.1.0.tgz#a7c5e289c87345f70da8728a7eb878e5d03c696b" + integrity sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw== + +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/relay-runtime/-/relay-runtime-12.0.0.tgz#1e039282bdb5e0c1b9a7dc7f6b9a09d4f4ff8237" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + +remedial@^1.0.7: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remedial/-/remedial-1.0.8.tgz#a5e4fd52a0e4956adbaf62da63a5a46a78c578a0" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + +remove-accents@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.5.0.tgz#77991f37ba212afba162e375b627631315bed687" + integrity sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +remove-trailing-spaces@^1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz#4354d22f3236374702f58ee373168f6d6887ada7" + integrity sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.7, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.2, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rfdc@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== + +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== + dependencies: + glob "^9.2.0" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup@^2.43.1: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.5, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +satori@0.10.9: + version "0.10.9" + resolved "https://registry.yarnpkg.com/satori/-/satori-0.10.9.tgz#efde2898ab4a5b09c072f0f4e112ac4a7d6a499c" + integrity sha512-XU9EELUEZuioT4acLIpCXxHcFzrsC8muvg0MY28d+TlqwxbkTzBmWbw+3+hnCzXT7YZ0Qm8k3eXktDaEu+qmEw== + dependencies: + "@shuding/opentype.js" "1.4.0-beta.0" + css-background-parser "^0.1.0" + css-box-shadow "1.0.0-3" + css-to-react-native "^3.0.0" + emoji-regex "^10.2.1" + escape-html "^1.0.3" + linebreak "^1.1.0" + parse-css-color "^0.2.1" + postcss-value-parser "^4.2.0" + yoga-wasm-web "^0.3.3" + +scale-ts@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/scale-ts/-/scale-ts-1.6.0.tgz#e9641093c5a9e50f964ddb1607139034e3e932e9" + integrity sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q== + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^2.6.5: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.1.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +scuid@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== + +"semver@2 || 3 || 4 || 5", semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^6.0.1: + version "6.0.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" + integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +server-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e" + integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shallowequal@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3: + version "1.8.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" + integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + +side-channel@^1.0.4, side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signedsource@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/signedsource/-/signedsource-1.0.0.tgz#1ddace4981798f93bd833973803d80d52e93ad6a" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== + +sigstore@^2.2.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.3.1.tgz#0755dd2cc4820f2e922506da54d3d628e13bfa39" + integrity sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ== + dependencies: + "@sigstore/bundle" "^2.3.2" + "@sigstore/core" "^1.0.0" + "@sigstore/protobuf-specs" "^0.3.2" + "@sigstore/sign" "^2.3.2" + "@sigstore/tuf" "^2.3.4" + "@sigstore/verify" "^1.2.1" + +siwe@^2.1.4: + version "2.3.2" + resolved "https://registry.yarnpkg.com/siwe/-/siwe-2.3.2.tgz#0794ae25f734f3068de0ab093ddd2f7867bc2d67" + integrity sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA== + dependencies: + "@spruceid/siwe-parser" "^2.1.2" + "@stablelib/random" "^1.0.1" + uri-js "^4.4.1" + valid-url "^1.0.9" + +slash@3.0.0, slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +smoldot@2.0.22: + version "2.0.22" + resolved "https://registry.yarnpkg.com/smoldot/-/smoldot-2.0.22.tgz#1e924d2011a31c57416e79a2b97a460f462a31c7" + integrity sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g== + dependencies: + ws "^8.8.1" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +socks-proxy-agent@^8.0.3: + version "8.0.4" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz#9071dca17af95f483300316f4b063578fa0db08c" + integrity sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw== + dependencies: + agent-base "^7.1.1" + debug "^4.3.4" + socks "^2.8.3" + +socks@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.8.0-beta.0: + version "0.8.0-beta.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11" + integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA== + dependencies: + whatwg-url "^7.0.0" + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz#5d607d27fc806f66d7b64a766650fa890f04ed66" + integrity sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.20" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz#e44ed19ed318dd1e5888f93325cee800f0f51b89" + integrity sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw== + +split2@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + +split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sponge-case/-/sponge-case-1.0.1.tgz#260833b86453883d974f84854cdb63aecc5aef4c" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.yarnpkg.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + +ssri@^10.0.0, ssri@^10.0.6: + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== + dependencies: + minipass "^7.0.3" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +standard-as-callback@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" + integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + +stoppable@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stoppable/-/stoppable-1.1.0.tgz#32da568e83ea488b08e4d7ea2c3bcc9d75015d5b" + integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== + +store@^2.0.12: + version "2.0.12" + resolved "https://registry.yarnpkg.com/store/-/store-2.0.12.tgz#8c534e2a0b831f72b75fc5f1119857c44ef5d593" + integrity sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-env-interpolation@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz#ad4397ae4ac53fe6c91d1402ad6f6a52862c7152" + integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.codepointat@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz#004ad44c8afc727527b108cd462b4d971cd469bc" + integrity sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg== + +string.prototype.includes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" + integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.matchall@^4.0.11, string.prototype.matchall@^4.0.6: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b" + integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strip-outer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +styled-components@^6.1.1: + version "6.1.12" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-6.1.12.tgz#0d9d511aacfb9052936146dcc2856559e6fae4df" + integrity sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA== + dependencies: + "@emotion/is-prop-valid" "1.2.2" + "@emotion/unitless" "0.8.1" + "@types/stylis" "4.2.5" + css-to-react-native "3.2.0" + csstype "3.1.3" + postcss "8.4.38" + shallowequal "1.1.0" + stylis "4.3.2" + tslib "2.6.2" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +stylis@4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.2.tgz#8f76b70777dd53eb669c6f58c997bf0a9972e444" + integrity sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg== + +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + +"superjson@^1.12.2 || ^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== + dependencies: + copy-anything "^3.0.2" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0, supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^3.0.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +swap-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-2.0.2.tgz#671aedb3c9c137e2985ef51c51f9e98445bf70d9" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +synckit@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88" + integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + +tailwind-datepicker-react@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/tailwind-datepicker-react/-/tailwind-datepicker-react-1.4.3.tgz#137e8d0a3a0d48a38ce666df6d2365acf37bbb00" + integrity sha512-K/mX7GjsO8fvaN1/jZcEbCMb14VdBe0HGxBy36WK4zxfYOPB2tGMSAUo06so+BmsaVPU4dwmfDElK/6Uxaashw== + dependencies: + tailwind-merge "^1.6.1" + +tailwind-merge@^1.6.1: + version "1.14.0" + resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-1.14.0.tgz#e677f55d864edc6794562c63f5001f45093cdb8b" + integrity sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ== + +tailwindcss@^3.4.1: + version "3.4.10" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.10.tgz#70442d9aeb78758d1f911af29af8255ecdb8ffef" + integrity sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.0" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +tar-stream@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + +tar@6.2.1, tar@^6.1.11, tar@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^5.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + +temp-dir@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3" + integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw== + dependencies: + is-stream "^2.0.0" + temp-dir "^2.0.0" + type-fest "^0.16.0" + unique-string "^2.0.0" + +terser-webpack-plugin@^5.3.3: + version "5.3.10" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.20" + jest-worker "^27.4.5" + schema-utils "^3.1.1" + serialize-javascript "^6.0.1" + terser "^5.26.0" + +terser@^5.0.0, terser@^5.26.0: + version "5.31.6" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" + integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +third-party-capital@1.0.20: + version "1.0.20" + resolved "https://registry.yarnpkg.com/third-party-capital/-/third-party-capital-1.0.20.tgz#e218a929a35bf4d2245da9addb8ab978d2f41685" + integrity sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-inflate@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +title-case@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/title-case/-/title-case-3.0.3.tgz#bc689b46f02e411f1d1e1d081f7c3deca0489982" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== + dependencies: + tslib "^2.0.3" + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@~0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" + integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +treeverse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +ts-api-utils@^1.0.1, ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-log@^2.2.3: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +tsconfig-paths-webpack-plugin@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-4.1.0.tgz#3c6892c5e7319c146eee1e7302ed9e6f2be4f763" + integrity sha512-xWFISjviPydmtmgeUAuXp4N1fky+VCtfhOkDUFIv5ea7p4wuTomI4QTrXvFBX2S4jZsmyTSrStQl+E+4w+RzxA== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^5.7.0" + tsconfig-paths "^4.1.2" + +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig-paths@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +tslib@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2, tslib@^2.6.3, tslib@~2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + +tslib@~2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + +tuf-js@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-2.2.1.tgz#fdd8794b644af1a75c7aaa2b197ddffeb2911b56" + integrity sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA== + dependencies: + "@tufjs/models" "2.0.1" + debug "^4.3.4" + make-fetch-happen "^13.0.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^2.7.2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/type/-/type-2.7.3.tgz#436981652129285cc3ba94f392886c2637ea0486" + integrity sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== + +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typeorm@^0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.20.tgz#4b61d737c6fed4e9f63006f88d58a5e54816b7ab" + integrity sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q== + dependencies: + "@sqltools/formatter" "^1.2.5" + app-root-path "^3.1.0" + buffer "^6.0.3" + chalk "^4.1.2" + cli-highlight "^2.1.11" + dayjs "^1.11.9" + debug "^4.3.4" + dotenv "^16.0.3" + glob "^10.3.10" + mkdirp "^2.1.3" + reflect-metadata "^0.2.1" + sha.js "^2.4.11" + tslib "^2.5.0" + uuid "^9.0.0" + yargs "^17.6.2" + +"typescript@>=3 < 6", typescript@^5.3.3, typescript@^5.4.5: + version "5.5.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" + integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== + +ua-parser-js@^1.0.35: + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + +uglify-js@^3.1.4: + version "3.19.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.2.tgz#319ae26a5fbd18d03c7dc02496cfa1d6f1cd4307" + integrity sha512-S8KA6DDI47nQXJSi2ctQ629YzwOVs+bQML6DAtvy0wgNdpi+0ySpQK0g2pxBq2xfF2z3YCscu7NNA8nXT9PlIQ== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== + +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + +undici@6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.13.0.tgz#7edbf4b7f3aac5f8a681d515151bf55cb3589d72" + integrity sha512-Q2rtqmZWrbP8nePMq7mOJIN98M0fYvSgV89vwl/BQRT4mDOeY2GXZngfGpcBBhtky3woM7G24wZV3Q304Bv6cw== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + +unicode-trie@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" + integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== + dependencies: + pako "^0.2.5" + tiny-inflate "^1.0.0" + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unixify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" + integrity sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg== + dependencies: + normalize-path "^2.1.1" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +upath@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" + +uri-js@^4.2.2, uri-js@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urlpattern-polyfill@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" + integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== + +urlpattern-polyfill@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" + integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== + +use-composed-ref@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" + integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== + +use-isomorphic-layout-effect@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" + integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== + +use-latest@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/use-latest/-/use-latest-1.2.1.tgz#d13dfb4b08c28e3e33991546a2cee53e14038cf2" + integrity sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw== + dependencies: + use-isomorphic-layout-effect "^1.1.1" + +use-sync-external-store@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== + +utf-8-validate@^5.0.2: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294" + integrity sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +valid-url@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" + integrity sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA== + +validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@5.0.1, validate-npm-package-name@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz#a316573e9b49f3ccd90dbb6eb52b3f06c6d604e8" + integrity sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ== + +value-or-promise@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.11.tgz#3e90299af31dd014fe843fe309cefa7c1d94b140" + integrity sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg== + +value-or-promise@^1.0.11, value-or-promise@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" + integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +walk-up-path@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: + version "3.3.3" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz#2073b91a2fdb1fbfbd401e7de0ac9f8214cecb4b" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + +web-vitals@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9" + integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg== + +webcrypto-core@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.8.0.tgz#aaea17f3dd9c77c304e3c494eb27ca07cc72ca37" + integrity sha512-kR1UQNH8MD42CYuLzvibfakG5Ew5seG85dMMoAM/1LqvckxaF6pUiidLuraIu4V+YCIFabYecUZAW0TuxAoaqw== + dependencies: + "@peculiar/asn1-schema" "^2.3.8" + "@peculiar/json-schema" "^1.1.12" + asn1js "^3.0.1" + pvtsutils "^1.3.5" + tslib "^2.6.2" + +"webextension-polyfill@>=0.10.0 <1.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.12.0.tgz#f62c57d2cd42524e9fbdcee494c034cae34a3d69" + integrity sha512-97TBmpoWJEE+3nFBQ4VocyCdLKfw54rFaJ6EVQYLBCXqCIpLSZkwGgASpv4oPt9gdKCJ80RJlcmNzNn008Ag6Q== + +webextension-polyfill@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz#ccb28101c910ba8cf955f7e6a263e662d744dbb8" + integrity sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== + +webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +websocket@^1.0.34: + version "1.0.35" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.35.tgz#374197207d7d4cc4c36cbf8a1bb886ee52a07885" + integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.63" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +whatwg-url@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" + integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.4.tgz#592796260602fc3514a1b5ee7fa29319b72380c3" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== + dependencies: + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.2" + which-typed-array "^1.1.15" + +which-collection@^1.0.1, which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.13, which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== + dependencies: + isexe "^3.1.1" + +wide-align@1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +word@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + +workbox-background-sync@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.6.1.tgz#08d603a33717ce663e718c30cc336f74909aff2f" + integrity sha512-trJd3ovpWCvzu4sW0E8rV3FUyIcC0W8G+AZ+VcqzzA890AsWZlUGOTSxIMmIHVusUw/FDq1HFWfy/kC/WTRqSg== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-broadcast-update@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.6.1.tgz#0fad9454cf8e4ace0c293e5617c64c75d8a8c61e" + integrity sha512-fBhffRdaANdeQ1V8s692R9l/gzvjjRtydBOvR6WCSB0BNE2BacA29Z4r9/RHd9KaXCPl6JTdI9q0bR25YKP8TQ== + dependencies: + workbox-core "6.6.1" + +workbox-build@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.6.1.tgz#6010e9ce550910156761448f2dbea8cfcf759cb0" + integrity sha512-INPgDx6aRycAugUixbKgiEQBWD0MPZqU5r0jyr24CehvNuLPSXp/wGOpdRJmts656lNiXwqV7dC2nzyrzWEDnw== + dependencies: + "@apideck/better-ajv-errors" "^0.3.1" + "@babel/core" "^7.11.1" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" + "@rollup/plugin-babel" "^5.2.0" + "@rollup/plugin-node-resolve" "^11.2.1" + "@rollup/plugin-replace" "^2.4.1" + "@surma/rollup-plugin-off-main-thread" "^2.2.3" + ajv "^8.6.0" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^9.0.1" + glob "^7.1.6" + lodash "^4.17.20" + pretty-bytes "^5.3.0" + rollup "^2.43.1" + rollup-plugin-terser "^7.0.0" + source-map "^0.8.0-beta.0" + stringify-object "^3.3.0" + strip-comments "^2.0.1" + tempy "^0.6.0" + upath "^1.2.0" + workbox-background-sync "6.6.1" + workbox-broadcast-update "6.6.1" + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-google-analytics "6.6.1" + workbox-navigation-preload "6.6.1" + workbox-precaching "6.6.1" + workbox-range-requests "6.6.1" + workbox-recipes "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + workbox-streams "6.6.1" + workbox-sw "6.6.1" + workbox-window "6.6.1" + +workbox-cacheable-response@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.6.1.tgz#284c2b86be3f4fd191970ace8c8e99797bcf58e9" + integrity sha512-85LY4veT2CnTCDxaVG7ft3NKaFbH6i4urZXgLiU4AiwvKqS2ChL6/eILiGRYXfZ6gAwDnh5RkuDbr/GMS4KSag== + dependencies: + workbox-core "6.6.1" + +workbox-core@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.6.1.tgz#7184776d4134c5ed2f086878c882728fc9084265" + integrity sha512-ZrGBXjjaJLqzVothoE12qTbVnOAjFrHDXpZe7coCb6q65qI/59rDLwuFMO4PcZ7jcbxY+0+NhUVztzR/CbjEFw== + +workbox-expiration@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.6.1.tgz#a841fa36676104426dbfb9da1ef6a630b4f93739" + integrity sha512-qFiNeeINndiOxaCrd2DeL1Xh1RFug3JonzjxUHc5WkvkD2u5abY3gZL1xSUNt3vZKsFFGGORItSjVTVnWAZO4A== + dependencies: + idb "^7.0.1" + workbox-core "6.6.1" + +workbox-google-analytics@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.6.1.tgz#a07a6655ab33d89d1b0b0a935ffa5dea88618c5d" + integrity sha512-1TjSvbFSLmkpqLcBsF7FuGqqeDsf+uAXO/pjiINQKg3b1GN0nBngnxLcXDYo1n/XxK4N7RaRrpRlkwjY/3ocuA== + dependencies: + workbox-background-sync "6.6.1" + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-navigation-preload@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.6.1.tgz#61a34fe125558dd88cf09237f11bd966504ea059" + integrity sha512-DQCZowCecO+wRoIxJI2V6bXWK6/53ff+hEXLGlQL4Rp9ZaPDLrgV/32nxwWIP7QpWDkVEtllTAK5h6cnhxNxDA== + dependencies: + workbox-core "6.6.1" + +workbox-precaching@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.6.1.tgz#dedeeba10a2d163d990bf99f1c2066ac0d1a19e2" + integrity sha512-K4znSJ7IKxCnCYEdhNkMr7X1kNh8cz+mFgx9v5jFdz1MfI84pq8C2zG+oAoeE5kFrUf7YkT5x4uLWBNg0DVZ5A== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-range-requests@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.6.1.tgz#ddaf7e73af11d362fbb2f136a9063a4c7f507a39" + integrity sha512-4BDzk28govqzg2ZpX0IFkthdRmCKgAKreontYRC5YsAPB2jDtPNxqx3WtTXgHw1NZalXpcH/E4LqUa9+2xbv1g== + dependencies: + workbox-core "6.6.1" + +workbox-recipes@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.6.1.tgz#ea70d2b2b0b0bce8de0a9d94f274d4a688e69fae" + integrity sha512-/oy8vCSzromXokDA+X+VgpeZJvtuf8SkQ8KL0xmRivMgJZrjwM3c2tpKTJn6PZA6TsbxGs3Sc7KwMoZVamcV2g== + dependencies: + workbox-cacheable-response "6.6.1" + workbox-core "6.6.1" + workbox-expiration "6.6.1" + workbox-precaching "6.6.1" + workbox-routing "6.6.1" + workbox-strategies "6.6.1" + +workbox-routing@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.6.1.tgz#cba9a1c7e0d1ea11e24b6f8c518840efdc94f581" + integrity sha512-j4ohlQvfpVdoR8vDYxTY9rA9VvxTHogkIDwGdJ+rb2VRZQ5vt1CWwUUZBeD/WGFAni12jD1HlMXvJ8JS7aBWTg== + dependencies: + workbox-core "6.6.1" + +workbox-strategies@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.6.1.tgz#38d0f0fbdddba97bd92e0c6418d0b1a2ccd5b8bf" + integrity sha512-WQLXkRnsk4L81fVPkkgon1rZNxnpdO5LsO+ws7tYBC6QQQFJVI6v98klrJEjFtZwzw/mB/HT5yVp7CcX0O+mrw== + dependencies: + workbox-core "6.6.1" + +workbox-streams@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.6.1.tgz#b2f7ba7b315c27a6e3a96a476593f99c5d227d26" + integrity sha512-maKG65FUq9e4BLotSKWSTzeF0sgctQdYyTMq529piEN24Dlu9b6WhrAfRpHdCncRS89Zi2QVpW5V33NX8PgH3Q== + dependencies: + workbox-core "6.6.1" + workbox-routing "6.6.1" + +workbox-sw@6.6.1: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.6.1.tgz#d4c4ca3125088e8b9fd7a748ed537fa0247bd72c" + integrity sha512-R7whwjvU2abHH/lR6kQTTXLHDFU2izht9kJOvBRYK65FbwutT4VvnUAJIgHvfWZ/fokrOPhfoWYoPCMpSgUKHQ== + +workbox-webpack-plugin@^6.5.4: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.1.tgz#4f81cc1ad4e5d2cd7477a86ba83c84ee2d187531" + integrity sha512-zpZ+ExFj9NmiI66cFEApyjk7hGsfJ1YMOaLXGXBoZf0v7Iu6hL0ZBe+83mnDq3YYWAfA3fnyFejritjOHkFcrA== + dependencies: + fast-json-stable-stringify "^2.1.0" + pretty-bytes "^5.4.1" + upath "^1.2.0" + webpack-sources "^1.4.3" + workbox-build "6.6.1" + +workbox-window@6.6.1, workbox-window@^6.5.4: + version "6.6.1" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.6.1.tgz#f22a394cbac36240d0dadcbdebc35f711bb7b89e" + integrity sha512-wil4nwOY58nTdCvif/KEZjQ2NP8uk3gGeRNy2jPBbzypU4BT4D9L8xiwbmDBpZlSgJd2xsT9FvSNU0gsxV51JQ== + dependencies: + "@types/trusted-types" "^2.0.2" + workbox-core "6.6.1" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@5.0.1, write-file-atomic@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" + integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== + dependencies: + sort-keys "^2.0.0" + type-fest "^0.4.1" + write-json-file "^3.2.0" + +ws@8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + +ws@^8.12.0, ws@^8.14.2, ws@^8.15.1, ws@^8.17.1, ws@^8.8.1: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.yarnpkg.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + +xss@^1.0.8: + version "1.0.15" + resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.15.tgz#96a0e13886f0661063028b410ed1b18670f4e59a" + integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg== + dependencies: + commander "^2.20.3" + cssfilter "0.0.10" + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +xxhash-wasm@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz#ecc0f813219b727af4d5f3958ca6becee2f2f1ff" + integrity sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A== + +xxhashjs@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8" + integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw== + dependencies: + cuint "^0.2.2" + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@^1.10.0: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@17.7.2, yargs@^17.0.0, yargs@^17.6.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^16.0.0, yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yoga-wasm-web@0.3.3, yoga-wasm-web@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz#eb8e9fcb18e5e651994732f19a220cb885d932ba" + integrity sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA== + +yup@^0.32.11: + version "0.32.11" + resolved "https://registry.yarnpkg.com/yup/-/yup-0.32.11.tgz#d67fb83eefa4698607982e63f7ca4c5ed3cf18c5" + integrity sha512-Z2Fe1bn+eLstG8DRR6FTavGD+MeAwyfmouhHsIUgaADz8jvFKbO/fXc2trJKZg+5EBjh4gGm3iU/t3onKlXHIg== + dependencies: + "@babel/runtime" "^7.15.4" + "@types/lodash" "^4.14.175" + lodash "^4.17.21" + lodash-es "^4.17.21" + nanoclone "^0.2.1" + property-expr "^2.0.4" + toposort "^2.0.2" + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== + +zod@^3.22.4: + version "3.23.8" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== + +zustand@^4.5.2: + version "4.5.5" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.5.tgz#f8c713041543715ec81a2adda0610e1dc82d4ad1" + integrity sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q== + dependencies: + use-sync-external-store "1.2.2" From 69c9fd8541038e379b60898e24fdd3bcec3b2d7f Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:29:51 -0400 Subject: [PATCH 17/42] run format across indexers/ --- indexers/consensus-squid/.prettierrc | 10 + indexers/consensus-squid/package.json | 3 +- indexers/consensus-squid/src/blocks/index.ts | 36 +- indexers/consensus-squid/src/events/index.ts | 26 +- .../consensus-squid/src/extrinsics/index.ts | 42 +- indexers/consensus-squid/src/main.ts | 20 +- indexers/consensus-squid/src/model/index.ts | 2 +- indexers/consensus-squid/src/processor.ts | 39 +- .../consensus-squid/src/storage/account.ts | 26 +- indexers/consensus-squid/src/storage/block.ts | 45 +- indexers/consensus-squid/src/storage/call.ts | 44 +- indexers/consensus-squid/src/storage/event.ts | 42 +- .../src/storage/eventModuleName.ts | 28 +- .../consensus-squid/src/storage/extrinsic.ts | 40 +- .../src/storage/extrinsicModuleName.ts | 28 +- indexers/consensus-squid/src/storage/index.ts | 16 +- indexers/consensus-squid/src/storage/log.ts | 36 +- .../src/types/balances/calls.ts | 202 +- .../src/types/balances/constants.ts | 83 +- .../src/types/balances/events.ts | 534 +- .../src/types/balances/storage.ts | 471 +- .../src/types/domains/calls.ts | 486 +- .../src/types/domains/constants.ts | 358 +- .../src/types/domains/events.ts | 490 +- .../src/types/domains/storage.ts | 2748 +++++---- .../src/types/messenger/calls.ts | 258 +- .../src/types/messenger/constants.ts | 30 +- .../src/types/messenger/events.ts | 266 +- .../src/types/messenger/storage.ts | 630 ++- .../consensus-squid/src/types/mmr/storage.ts | 87 +- .../src/types/offences-subspace/events.ts | 30 +- .../src/types/offences-subspace/storage.ts | 177 +- .../src/types/rewards/calls.ts | 26 +- .../src/types/rewards/constants.ts | 83 +- .../src/types/rewards/events.ts | 50 +- .../src/types/rewards/storage.ts | 112 +- .../src/types/runtime-configs/calls.ts | 90 +- .../src/types/runtime-configs/storage.ts | 111 +- .../src/types/subspace-mmr/storage.ts | 48 +- .../src/types/subspace/calls.ts | 129 +- .../src/types/subspace/constants.ts | 214 +- .../src/types/subspace/events.ts | 52 +- .../src/types/subspace/storage.ts | 607 +- .../consensus-squid/src/types/sudo/calls.ts | 297 +- .../consensus-squid/src/types/sudo/events.ts | 115 +- .../consensus-squid/src/types/sudo/storage.ts | 18 +- indexers/consensus-squid/src/types/support.ts | 234 +- .../consensus-squid/src/types/system/calls.ts | 246 +- .../src/types/system/constants.ts | 88 +- .../src/types/system/events.ts | 155 +- .../src/types/system/storage.ts | 599 +- .../src/types/timestamp/calls.ts | 24 +- .../src/types/timestamp/constants.ts | 25 +- .../src/types/timestamp/storage.ts | 46 +- .../src/types/transaction-fees/constants.ts | 58 +- .../src/types/transaction-fees/events.ts | 98 +- .../src/types/transaction-fees/storage.ts | 116 +- .../types/transaction-payment/constants.ts | 55 +- .../src/types/transaction-payment/events.ts | 30 +- .../src/types/transaction-payment/storage.ts | 36 +- .../src/types/transporter/calls.ts | 26 +- .../src/types/transporter/events.ts | 154 +- .../src/types/transporter/storage.ts | 311 +- .../src/types/utility/calls.ts | 608 +- .../src/types/utility/constants.ts | 15 +- .../src/types/utility/events.ts | 120 +- indexers/consensus-squid/src/types/v0.ts | 4924 +++++++++-------- indexers/consensus-squid/src/types/v1.ts | 4379 ++++++++------- indexers/consensus-squid/src/types/v3.ts | 2539 +++++---- indexers/consensus-squid/src/types/v5.ts | 4573 ++++++++------- .../src/types/vesting/calls.ts | 87 +- .../src/types/vesting/constants.ts | 15 +- .../src/types/vesting/events.ts | 74 +- .../src/types/vesting/storage.ts | 59 +- indexers/consensus-squid/src/utils/cache.ts | 120 +- indexers/consensus-squid/src/utils/index.ts | 65 +- indexers/leaderboard-squid/.prettierrc | 10 + indexers/leaderboard-squid/package.json | 3 +- .../leaderboard-squid/src/blocks/index.ts | 24 +- .../leaderboard-squid/src/events/account.ts | 137 +- .../leaderboard-squid/src/events/extrinsic.ts | 114 +- .../leaderboard-squid/src/events/farmer.ts | 158 +- indexers/leaderboard-squid/src/events/fee.ts | 43 +- .../leaderboard-squid/src/events/index.ts | 65 +- .../leaderboard-squid/src/events/staking.ts | 260 +- indexers/leaderboard-squid/src/main.ts | 20 +- indexers/leaderboard-squid/src/model/index.ts | 2 +- indexers/leaderboard-squid/src/processor.ts | 37 +- .../leaderboard-squid/src/storage/account.ts | 143 +- .../leaderboard-squid/src/storage/farmer.ts | 98 +- .../src/storage/nominator.ts | 53 +- .../leaderboard-squid/src/storage/operator.ts | 102 +- .../src/types/balances/calls.ts | 202 +- .../src/types/balances/constants.ts | 83 +- .../src/types/balances/events.ts | 534 +- .../src/types/balances/storage.ts | 471 +- .../src/types/domains/calls.ts | 486 +- .../src/types/domains/constants.ts | 358 +- .../src/types/domains/events.ts | 490 +- .../src/types/domains/storage.ts | 2748 +++++---- .../src/types/rewards/calls.ts | 26 +- .../src/types/rewards/constants.ts | 83 +- .../src/types/rewards/events.ts | 50 +- .../src/types/rewards/storage.ts | 112 +- .../src/types/subspace/calls.ts | 129 +- .../src/types/subspace/constants.ts | 214 +- .../src/types/subspace/events.ts | 52 +- .../src/types/subspace/storage.ts | 607 +- .../leaderboard-squid/src/types/support.ts | 234 +- .../src/types/system/calls.ts | 246 +- .../src/types/system/constants.ts | 88 +- .../src/types/system/events.ts | 155 +- .../src/types/system/storage.ts | 599 +- .../src/types/transaction-fees/constants.ts | 58 +- .../src/types/transaction-fees/events.ts | 98 +- .../src/types/transaction-fees/storage.ts | 116 +- .../types/transaction-payment/constants.ts | 55 +- .../src/types/transaction-payment/events.ts | 30 +- .../src/types/transaction-payment/storage.ts | 36 +- indexers/leaderboard-squid/src/types/v0.ts | 3583 ++++++------ indexers/leaderboard-squid/src/types/v1.ts | 3006 +++++----- indexers/leaderboard-squid/src/types/v3.ts | 199 +- indexers/leaderboard-squid/src/types/v5.ts | 2981 +++++----- indexers/leaderboard-squid/src/utils/cache.ts | 288 +- indexers/leaderboard-squid/src/utils/index.ts | 56 +- indexers/leaderboard-squid/src/utils/sort.ts | 301 +- indexers/staking-squid/.prettierrc | 10 + indexers/staking-squid/package.json | 3 +- indexers/staking-squid/src/blocks/index.ts | 22 +- indexers/staking-squid/src/events/bundle.ts | 342 +- indexers/staking-squid/src/events/domain.ts | 24 +- indexers/staking-squid/src/events/epoch.ts | 414 +- indexers/staking-squid/src/events/index.ts | 67 +- indexers/staking-squid/src/events/operator.ts | 208 +- indexers/staking-squid/src/events/unlock.ts | 269 +- indexers/staking-squid/src/events/withdraw.ts | 78 +- .../staking-squid/src/extrinsics/index.ts | 26 +- .../staking-squid/src/extrinsics/operator.ts | 191 +- indexers/staking-squid/src/main.ts | 20 +- indexers/staking-squid/src/model/index.ts | 2 +- indexers/staking-squid/src/processor.ts | 37 +- indexers/staking-squid/src/storage/account.ts | 29 +- indexers/staking-squid/src/storage/bundle.ts | 24 +- indexers/staking-squid/src/storage/deposit.ts | 14 +- indexers/staking-squid/src/storage/domain.ts | 32 +- .../staking-squid/src/storage/domainBlock.ts | 16 +- .../staking-squid/src/storage/domainEpoch.ts | 26 +- indexers/staking-squid/src/storage/index.ts | 20 +- .../staking-squid/src/storage/nominator.ts | 38 +- .../staking-squid/src/storage/operator.ts | 63 +- indexers/staking-squid/src/storage/stats.ts | 291 +- .../staking-squid/src/storage/withdrawal.ts | 16 +- .../staking-squid/src/types/domains/calls.ts | 648 +-- .../src/types/domains/constants.ts | 358 +- .../staking-squid/src/types/domains/events.ts | 534 +- .../src/types/domains/storage.ts | 3031 ++++++---- indexers/staking-squid/src/types/support.ts | 234 +- indexers/staking-squid/src/types/v0.ts | 1036 ++-- indexers/staking-squid/src/types/v1.ts | 997 ++-- indexers/staking-squid/src/types/v3.ts | 94 +- indexers/staking-squid/src/types/v5.ts | 1043 ++-- indexers/staking-squid/src/types/v6.ts | 948 ++-- indexers/staking-squid/src/utils/cache.ts | 222 +- indexers/staking-squid/src/utils/index.ts | 81 +- package.json | 21 +- 165 files changed, 32562 insertions(+), 28174 deletions(-) create mode 100644 indexers/consensus-squid/.prettierrc create mode 100644 indexers/leaderboard-squid/.prettierrc create mode 100644 indexers/staking-squid/.prettierrc diff --git a/indexers/consensus-squid/.prettierrc b/indexers/consensus-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/consensus-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/consensus-squid/package.json b/indexers/consensus-squid/package.json index ed8cbeb41..a84661d7b 100644 --- a/indexers/consensus-squid/package.json +++ b/indexers/consensus-squid/package.json @@ -22,7 +22,8 @@ "migration": "sqd migration:generate", "build": "rm -rf lib && tsc", "process": "sqd process", - "deploy": "sqd deploy --org autonomys-labs ." + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index df73d96ac..cf43079ad 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -1,32 +1,32 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { Store } from "@subsquid/typeorm-store"; -import { processExtrinsics } from "../extrinsics"; -import type { Ctx, CtxBlock } from "../processor"; -import { getOrCreateBlock } from "../storage"; -import { logBlock } from "../utils"; -import { Cache, load, save } from "../utils/cache"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processExtrinsics } from '../extrinsics' +import type { Ctx, CtxBlock } from '../processor' +import { getOrCreateBlock } from '../storage' +import { logBlock } from '../utils' +import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { - let cache: Cache = await load(ctx); - logBlock(ctx.blocks); + let cache: Cache = await load(ctx) + logBlock(ctx.blocks) for (let block of ctx.blocks) { - console.log("block", block); + console.log('block', block) const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), timestamp: Number(block.header.timestamp ?? 0), - hash: block.header.hash ?? "", - parentHash: block.header.parentHash ?? "", - specId: block.header.specVersion.toString() ?? "", - }); - cache.blocks.set(_block.id, _block); + hash: block.header.hash ?? '', + parentHash: block.header.parentHash ?? '', + specId: block.header.specVersion.toString() ?? '', + }) + cache.blocks.set(_block.id, _block) - cache = await processBlock(cache, api, block); + cache = await processBlock(cache, api, block) } - await save(ctx, cache); + await save(ctx, cache) } async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processExtrinsics(cache, api, block, block.extrinsics); + return await processExtrinsics(cache, api, block, block.extrinsics) } diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 30787d918..04b948b6d 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,23 +1,23 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; -import { getOrCreateEvent, getOrCreateEventModuleName } from "../storage"; -import { Cache } from "../utils/cache"; +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' +import { getOrCreateEvent, getOrCreateEventModuleName } from '../storage' +import { Cache } from '../utils/cache' export async function processEvents( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { for (let event of extrinsic.events) { const _event = getOrCreateEvent(cache, block, event.id, { name: event.name, - }); - cache.events.set(_event.id, _event); + }) + cache.events.set(_event.id, _event) - cache = await processEvent(cache, api, block, extrinsic, event); + cache = await processEvent(cache, api, block, extrinsic, event) } - return cache; + return cache } async function processEvent( @@ -25,15 +25,15 @@ async function processEvent( api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { const _eventModuleName = getOrCreateEventModuleName(cache, block, event.id, { name: event.name, - }); - cache.eventModuleNames.set(_eventModuleName.id, _eventModuleName); + }) + cache.eventModuleNames.set(_eventModuleName.id, _eventModuleName) switch (event.name) { default: - return cache; + return cache } } diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 59faf5bb4..e2464c7e4 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -1,50 +1,42 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { processEvents } from "../events"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { - getOrCreateExtrinsic, - getOrCreateExtrinsicModuleName, -} from "../storage"; -import { Cache } from "../utils/cache"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { processEvents } from '../events' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getOrCreateExtrinsic, getOrCreateExtrinsicModuleName } from '../storage' +import { Cache } from '../utils/cache' export async function processExtrinsics( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsics: CtxExtrinsic[] + extrinsics: CtxExtrinsic[], ) { for (let [index, extrinsic] of extrinsics.entries()) { - console.log("extrinsic", extrinsic); + console.log('extrinsic', extrinsic) const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { hash: extrinsic.hash, indexInBlock: index, - }); - cache.extrinsics.set(_extrinsic.id, _extrinsic); + }) + cache.extrinsics.set(_extrinsic.id, _extrinsic) - cache = await processExtrinsic(cache, api, block, extrinsic); + cache = await processExtrinsic(cache, api, block, extrinsic) } - return cache; + return cache } export async function processExtrinsic( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { - const _extrinsicModuleName = getOrCreateExtrinsicModuleName( - cache, - block, - extrinsic.id, - { - name: extrinsic.call?.name, - } - ); - cache.extrinsicModuleNames.set(_extrinsicModuleName.id, _extrinsicModuleName); + const _extrinsicModuleName = getOrCreateExtrinsicModuleName(cache, block, extrinsic.id, { + name: extrinsic.call?.name, + }) + cache.extrinsicModuleNames.set(_extrinsicModuleName.id, _extrinsicModuleName) switch (extrinsic.call?.name) { default: - return await processEvents(cache, api, block, extrinsic); + return await processEvents(cache, api, block, extrinsic) } } diff --git a/indexers/consensus-squid/src/main.ts b/indexers/consensus-squid/src/main.ts index 92c5f7e7f..1dea21441 100644 --- a/indexers/consensus-squid/src/main.ts +++ b/indexers/consensus-squid/src/main.ts @@ -1,15 +1,15 @@ -import { createConnection } from "@autonomys/auto-utils"; -import { TypeormDatabase } from "@subsquid/typeorm-store"; -import { assertNotNull } from "@subsquid/util-internal"; -import { processBlocks } from "./blocks"; -import { processor } from "./processor"; +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( - assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC_CONSENSUS_HTTP env") - ); + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + ) - await processBlocks(ctx, api); + await processBlocks(ctx, api) - await api.disconnect(); -}); + await api.disconnect() +}) diff --git a/indexers/consensus-squid/src/model/index.ts b/indexers/consensus-squid/src/model/index.ts index 73bfb2881..99735f641 100644 --- a/indexers/consensus-squid/src/model/index.ts +++ b/indexers/consensus-squid/src/model/index.ts @@ -1 +1 @@ -export * from "./generated" +export * from './generated' diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts index 42d48ac89..1869099c3 100644 --- a/indexers/consensus-squid/src/processor.ts +++ b/indexers/consensus-squid/src/processor.ts @@ -6,18 +6,13 @@ import { Call as _Call, Event as _Event, Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' export const processor = new SubstrateBatchProcessor() - .setGateway( - assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") - ) + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) .setRpcEndpoint({ - url: assertNotNull( - process.env.RPC_CONSENSUS_HTTP, - "No RPC endpoint supplied" - ), + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source rateLimit: 10, }) @@ -25,12 +20,12 @@ export const processor = new SubstrateBatchProcessor() from: 0, }) .addCall({ - name: ["*"], + name: ['*'], events: true, extrinsic: true, }) .addEvent({ - name: ["*"], + name: ['*'], call: true, extrinsic: true, }) @@ -57,15 +52,15 @@ export const processor = new SubstrateBatchProcessor() name: true, args: true, }, - }); + }) -export type Fields = SubstrateBatchProcessorFields; -export type Block = BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; -export type Ctx = ProcessorContext; -export type CtxBlock = Ctx["blocks"][0]; -export type CtxExtrinsic = CtxBlock["extrinsics"][0]; -export type CtxEvent = CtxExtrinsic["events"][0]; +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/consensus-squid/src/storage/account.ts b/indexers/consensus-squid/src/storage/account.ts index ab5c20fd1..4f7870e65 100644 --- a/indexers/consensus-squid/src/storage/account.ts +++ b/indexers/consensus-squid/src/storage/account.ts @@ -1,14 +1,14 @@ -import { Account } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Account } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createAccount = ( block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new Account({ id: address, nonce: props.nonce ?? BigInt(0), @@ -18,18 +18,18 @@ export const createAccount = ( ...props, createdAt: blockNumber, updatedAt: blockNumber, - }); -}; + }) +} export const getOrCreateAccount = ( cache: Cache, block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const account = cache.accounts.get(address); + const account = cache.accounts.get(address) - if (!account) return createAccount(block, address, props); + if (!account) return createAccount(block, address, props) - return account; -}; + return account +} diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts index 8e74a51df..9bd457a14 100644 --- a/indexers/consensus-squid/src/storage/block.ts +++ b/indexers/consensus-squid/src/storage/block.ts @@ -1,40 +1,37 @@ -import { Block } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Block } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' -export const createBlock = ( - block: CtxBlock, - props: Partial = {} -): Block => { - const blockNumber = getBlockNumber(block); +export const createBlock = (block: CtxBlock, props: Partial = {}): Block => { + const blockNumber = getBlockNumber(block) return new Block({ - id: props.id ?? "", + id: props.id ?? '', height: props.height ?? BigInt(0), timestamp: props.timestamp ?? 0, - hash: props.hash ?? "", - parentHash: props.parentHash ?? "", - specId: props.specId ?? "", - stateRoot: props.stateRoot ?? "", - extrinsicsRoot: props.extrinsicsRoot ?? "", + hash: props.hash ?? '', + parentHash: props.parentHash ?? '', + specId: props.specId ?? '', + stateRoot: props.stateRoot ?? '', + extrinsicsRoot: props.extrinsicsRoot ?? '', spacePledged: props.spacePledged ?? BigInt(0), blockchainSize: props.blockchainSize ?? BigInt(0), extrinsicsCount: props.extrinsicsCount ?? 0, eventsCount: props.eventsCount ?? 0, - accountId: props.accountId ?? "", + accountId: props.accountId ?? '', ...props, - }); -}; + }) +} export const getOrCreateBlock = ( cache: Cache, block: CtxBlock, - props: Partial = {} + props: Partial = {}, ): Block => { - const blockId = props.id ?? ""; - const cachedBlock = cache.blocks.get(blockId); + const blockId = props.id ?? '' + const cachedBlock = cache.blocks.get(blockId) - if (!cachedBlock) return createBlock(block, props); + if (!cachedBlock) return createBlock(block, props) - return cachedBlock; -}; + return cachedBlock +} diff --git a/indexers/consensus-squid/src/storage/call.ts b/indexers/consensus-squid/src/storage/call.ts index 991162c87..0cfc222ad 100644 --- a/indexers/consensus-squid/src/storage/call.ts +++ b/indexers/consensus-squid/src/storage/call.ts @@ -1,40 +1,36 @@ -import { Call } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Call } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' -export const createCall = ( - block: CtxBlock, - id: string, - props: Partial = {} -): Call => { - const blockNumber = getBlockNumber(block); +export const createCall = (block: CtxBlock, id: string, props: Partial = {}): Call => { + const blockNumber = getBlockNumber(block) return new Call({ id: id, - name: props.name ?? "", + name: props.name ?? '', timestamp: props.timestamp ?? new Date(), success: props.success ?? false, - args: props.args ?? "", - blockId: props.blockId ?? "", - extrinsicId: props.extrinsicId ?? "", - error: props.error ?? "", - accountId: props.accountId ?? "", - parent: props.parent ?? "", + args: props.args ?? '', + blockId: props.blockId ?? '', + extrinsicId: props.extrinsicId ?? '', + error: props.error ?? '', + accountId: props.accountId ?? '', + parent: props.parent ?? '', pos: props.pos ?? 0, createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateCall = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): Call => { - const call = cache.calls.get(id); + const call = cache.calls.get(id) - if (!call) return createCall(block, id, props); + if (!call) return createCall(block, id, props) - return call; -}; + return call +} diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts index 7034402dd..e4aa29195 100644 --- a/indexers/consensus-squid/src/storage/event.ts +++ b/indexers/consensus-squid/src/storage/event.ts @@ -1,39 +1,35 @@ -import { Event } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Event } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' -export const createEvent = ( - block: CtxBlock, - id: string, - props: Partial = {} -): Event => { - const blockNumber = getBlockNumber(block); +export const createEvent = (block: CtxBlock, id: string, props: Partial = {}): Event => { + const blockNumber = getBlockNumber(block) return new Event({ id: id, indexInBlock: props.indexInBlock ?? 0, - name: props.name ?? "", + name: props.name ?? '', timestamp: props.timestamp ?? new Date(), - phase: props.phase ?? "", + phase: props.phase ?? '', pos: props.pos ?? 0, - args: props.args ?? "", - blockId: props.blockId ?? "", - extrinsicId: props.extrinsicId ?? "", - callId: props.callId ?? "", + args: props.args ?? '', + blockId: props.blockId ?? '', + extrinsicId: props.extrinsicId ?? '', + callId: props.callId ?? '', createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateEvent = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): Event => { - const event = cache.events.get(id); + const event = cache.events.get(id) - if (!event) return createEvent(block, id, props); + if (!event) return createEvent(block, id, props) - return event; -}; + return event +} diff --git a/indexers/consensus-squid/src/storage/eventModuleName.ts b/indexers/consensus-squid/src/storage/eventModuleName.ts index 3e42647e9..0ad631f2d 100644 --- a/indexers/consensus-squid/src/storage/eventModuleName.ts +++ b/indexers/consensus-squid/src/storage/eventModuleName.ts @@ -1,31 +1,31 @@ -import { EventModuleName } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { EventModuleName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createEventModuleName = ( block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): EventModuleName => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new EventModuleName({ id: id, - name: "", + name: '', createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateEventModuleName = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): EventModuleName => { - const eventModuleName = cache.eventModuleNames.get(id); + const eventModuleName = cache.eventModuleNames.get(id) - if (!eventModuleName) return createEventModuleName(block, id, props); + if (!eventModuleName) return createEventModuleName(block, id, props) - return eventModuleName; -}; + return eventModuleName +} diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts index 5d8a94dd9..528de95f6 100644 --- a/indexers/consensus-squid/src/storage/extrinsic.ts +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -1,44 +1,44 @@ -import { Extrinsic } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Extrinsic } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createExtrinsic = ( block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): Extrinsic => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new Extrinsic({ id: id, - hash: props.hash ?? "", + hash: props.hash ?? '', indexInBlock: props.indexInBlock ?? 0, nonce: props.nonce ?? BigInt(0), - name: props.name ?? "", - accountId: props.accountId ?? "", - signature: props.signature ?? "", - error: props.error ?? "", + name: props.name ?? '', + accountId: props.accountId ?? '', + signature: props.signature ?? '', + error: props.error ?? '', tip: props.tip ?? BigInt(0), fee: props.fee ?? BigInt(0), success: props.success ?? false, - blockId: props.blockId ?? "", + blockId: props.blockId ?? '', pos: props.pos ?? 0, timestamp: props.timestamp ?? new Date(), - args: props.args ?? "", + args: props.args ?? '', createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateExtrinsic = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): Extrinsic => { - const extrinsic = cache.extrinsics.get(id); + const extrinsic = cache.extrinsics.get(id) - if (!extrinsic) return createExtrinsic(block, id, props); + if (!extrinsic) return createExtrinsic(block, id, props) - return extrinsic; -}; + return extrinsic +} diff --git a/indexers/consensus-squid/src/storage/extrinsicModuleName.ts b/indexers/consensus-squid/src/storage/extrinsicModuleName.ts index 4db0ca8a3..f8072af41 100644 --- a/indexers/consensus-squid/src/storage/extrinsicModuleName.ts +++ b/indexers/consensus-squid/src/storage/extrinsicModuleName.ts @@ -1,31 +1,31 @@ -import { ExtrinsicModuleName } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { ExtrinsicModuleName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createExtrinsicModuleName = ( block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): ExtrinsicModuleName => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new ExtrinsicModuleName({ id: id, - name: "", + name: '', createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateExtrinsicModuleName = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): ExtrinsicModuleName => { - const extrinsicModuleName = cache.extrinsicModuleNames.get(id); + const extrinsicModuleName = cache.extrinsicModuleNames.get(id) - if (!extrinsicModuleName) return createExtrinsicModuleName(block, id, props); + if (!extrinsicModuleName) return createExtrinsicModuleName(block, id, props) - return extrinsicModuleName; -}; + return extrinsicModuleName +} diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts index f05e5ec63..7c735ba99 100644 --- a/indexers/consensus-squid/src/storage/index.ts +++ b/indexers/consensus-squid/src/storage/index.ts @@ -1,8 +1,8 @@ -export * from "./account"; -export * from "./block"; -export * from "./call"; -export * from "./event"; -export * from "./eventModuleName"; -export * from "./extrinsic"; -export * from "./extrinsicModuleName"; -export * from "./log"; +export * from './account' +export * from './block' +export * from './call' +export * from './event' +export * from './eventModuleName' +export * from './extrinsic' +export * from './extrinsicModuleName' +export * from './log' diff --git a/indexers/consensus-squid/src/storage/log.ts b/indexers/consensus-squid/src/storage/log.ts index ceef44643..83b601621 100644 --- a/indexers/consensus-squid/src/storage/log.ts +++ b/indexers/consensus-squid/src/storage/log.ts @@ -1,33 +1,29 @@ -import { Log } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Log } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' -export const createLog = ( - block: CtxBlock, - id: string, - props: Partial = {} -): Log => { - const blockNumber = getBlockNumber(block); +export const createLog = (block: CtxBlock, id: string, props: Partial = {}): Log => { + const blockNumber = getBlockNumber(block) return new Log({ id: id, - kind: props.kind ?? "", - value: props.value ?? "", - blockId: props.blockId ?? "", + kind: props.kind ?? '', + value: props.value ?? '', + blockId: props.blockId ?? '', createdAt: blockNumber, ...props, - }); -}; + }) +} export const getOrCreateLog = ( cache: Cache, block: CtxBlock, id: string, - props: Partial = {} + props: Partial = {}, ): Log => { - const log = cache.logs.get(id); + const log = cache.logs.get(id) - if (!log) return createLog(block, id, props); + if (!log) return createLog(block, id, props) - return log; -}; + return log +} diff --git a/indexers/consensus-squid/src/types/balances/calls.ts b/indexers/consensus-squid/src/types/balances/calls.ts index 03fbec1ea..609cb43de 100644 --- a/indexers/consensus-squid/src/types/balances/calls.ts +++ b/indexers/consensus-squid/src/types/balances/calls.ts @@ -1,119 +1,119 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v5 from '../v5' -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }), + ), } -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }), + ), } -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }), + ), } -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }), + ), } -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/balances/constants.ts b/indexers/consensus-squid/src/types/balances/constants.ts index 5cab2c7e3..aac0c6f9e 100644 --- a/indexers/consensus-squid/src/types/balances/constants.ts +++ b/indexers/consensus-squid/src/types/balances/constants.ts @@ -1,59 +1,44 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType('Balances.ExistentialDeposit', sts.bigint()), } -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType('Balances.MaxLocks', sts.number()), } -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType('Balances.MaxReserves', sts.number()), } -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType('Balances.MaxHolds', sts.number()), } -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType('Balances.MaxFreezes', sts.number()), } diff --git a/indexers/consensus-squid/src/types/balances/events.ts b/indexers/consensus-squid/src/types/balances/events.ts index fda7f6e59..e03356954 100644 --- a/indexers/consensus-squid/src/types/balances/events.ts +++ b/indexers/consensus-squid/src/types/balances/events.ts @@ -1,312 +1,312 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }), + ), } -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }), + ), } -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }), + ), } -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }), + ), } -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }), + ), } -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }), + ), } -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/balances/storage.ts b/indexers/consensus-squid/src/types/balances/storage.ts index 5f4a19212..bc3249096 100644 --- a/indexers/consensus-squid/src/types/balances/storage.ts +++ b/indexers/consensus-squid/src/types/balances/storage.ts @@ -1,253 +1,358 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, } /** * The total units issued in the system. */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType( + 'Balances.InactiveIssuance', + 'Default', + [], + sts.bigint(), + ) as InactiveIssuanceV0, } /** * The total units of outstanding deactivated balance in the system. */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, } /** * The Balances pallet example of storing the balance of an account. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> * } * ``` - * + * * You can also store the balance of an account in the `System` pallet. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = System * } * ``` - * + * * But this comes with tradeoffs, storing account balances in the system pallet stores * `frame_system` data alongside the account data contrary to storing account balances in the * `Balances` pallet, which uses a `StorageMap` to store balances data only. * NOTE: This is only used in the case that this pallet is used to store balances. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType( + 'Balances.Locks', + 'Default', + [v0.AccountId32], + sts.array(() => v0.BalanceLock), + ) as LocksV0, } /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType( + 'Balances.Reserves', + 'Default', + [v0.AccountId32], + sts.array(() => v0.ReserveData), + ) as ReservesV0, } /** * Named reserves on some account balances. */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType( + 'Balances.Holds', + 'Default', + [v0.AccountId32], + sts.array(() => v0.IdAmount), + ) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType( + 'Balances.Holds', + 'Default', + [v1.AccountId32], + sts.array(() => v1.IdAmount), + ) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType( + 'Balances.Holds', + 'Default', + [v3.AccountId32], + sts.array(() => v3.IdAmount), + ) as HoldsV3, } /** * Holds on account balances. */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> } /** * Holds on account balances. */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v1.AccountId32, + ): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.AccountId32, + ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> } /** * Holds on account balances. */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v3.AccountId32, + ): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v3.AccountId32, + ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType( + 'Balances.Freezes', + 'Default', + [v0.AccountId32], + sts.array(() => v0.Type_152), + ) as FreezesV0, } /** * Freeze locks on account balances. */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> } diff --git a/indexers/consensus-squid/src/types/domains/calls.ts b/indexers/consensus-squid/src/types/domains/calls.ts index 3ecf1398b..803c3241f 100644 --- a/indexers/consensus-squid/src/types/domains/calls.ts +++ b/indexers/consensus-squid/src/types/domains/calls.ts @@ -1,278 +1,278 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }), + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }), + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }), + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }), + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }), + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }), + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }), + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }), + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }), + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }), + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }), + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }), + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }), + ), } diff --git a/indexers/consensus-squid/src/types/domains/constants.ts b/indexers/consensus-squid/src/types/domains/constants.ts index a26b47666..aca0daa1d 100644 --- a/indexers/consensus-squid/src/types/domains/constants.ts +++ b/indexers/consensus-squid/src/types/domains/constants.ts @@ -1,213 +1,153 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType('Domains.MaxNominators', sts.number()), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType('Domains.SudoId', v0.AccountId32), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType('Domains.PalletId', v1.PalletId), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]), + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType('Domains.BundleLongevity', sts.number()), } diff --git a/indexers/consensus-squid/src/types/domains/events.ts b/indexers/consensus-squid/src/types/domains/events.ts index d6551e7d0..f10bdb7c7 100644 --- a/indexers/consensus-squid/src/types/domains/events.ts +++ b/indexers/consensus-squid/src/types/domains/events.ts @@ -1,250 +1,250 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }), + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }), + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }), + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }), + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }), + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }), + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }), + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }), + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }), + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }), + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }), + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }), + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }), + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/domains/storage.ts b/indexers/consensus-squid/src/types/domains/storage.ts index 495ae0e03..c586dbd04 100644 --- a/indexers/consensus-squid/src/types/domains/storage.ts +++ b/indexers/consensus-squid/src/types/domains/storage.ts @@ -1,452 +1,773 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulBundles', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulFraudProofs', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const runtimeRegistry = { + v0: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v0.RuntimeObject, + ) as RuntimeRegistryV0, + v5: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v5.RuntimeObject, + ) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType( + 'Domains.ScheduledRuntimeUpgrades', + 'Optional', + [sts.number(), sts.number()], + v0.ScheduledRuntimeUpgrade, + ) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise + getMany( + block: Block, + keys: [number, number][], + ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[number, number][]> + getPairs( + block: Block, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + key2: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const operatorIdOwner = { + v0: new StorageType( + 'Domains.OperatorIdOwner', + 'Optional', + [sts.bigint()], + v0.AccountId32, + ) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType( + 'Domains.OperatorSigningKey', + 'Optional', + [sts.bytes()], + sts.bigint(), + ) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: Bytes, + ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> +} + +export const domainStakingSummary = { + v0: new StorageType( + 'Domains.DomainStakingSummary', + 'Optional', + [v0.DomainId], + v0.StakingSummary, + ) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType( + 'Domains.PendingOperatorSwitches', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType( + 'Domains.OperatorEpochSharePrice', + 'Optional', + [sts.bigint(), v0.DomainEpoch], + v0.SharePrice, + ) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Deposit, + ) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Deposit, + ) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Withdrawal, + ) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Withdrawal, + ) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType( + 'Domains.NominatorCount', + 'Default', + [sts.bigint()], + sts.number(), + ) as NominatorCountV0, } /** @@ -457,28 +778,37 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: number | undefined][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType( + 'Domains.PendingSlashes', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingSlashesV0, } /** @@ -486,341 +816,537 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType( + 'Domains.PendingStakingOperationCount', + 'Default', + [v0.DomainId], + sts.number(), + ) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v0.DomainId], + v0.DomainObject, + ) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v1.DomainId], + v1.DomainObject, + ) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v5.DomainId], + v5.DomainObject, + ) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairs( + block: Block, + key: v5.DomainId, + ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.DomainId, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType( + 'Domains.BlockTree', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v0.H256], + v0.BlockTreeNode, + ) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v1.H256], + v1.BlockTreeNode, + ) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v5.H256], + v5.BlockTreeNode, + ) as BlockTreeNodesV5, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.H256, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.H256, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType( + 'Domains.HeadReceiptNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType( + 'Domains.LatestConfirmedDomainBlockNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType( + 'Domains.HeadReceiptExtended', + 'Default', + [v0.DomainId], + sts.boolean(), + ) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType( + 'Domains.StateRoots', + 'Optional', + [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], + v0.H256, + ) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType( + 'Domains.ConsensusBlockHash', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as ConsensusBlockHashV0, } /** @@ -828,114 +1354,277 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v0.DomainId, sts.number(), sts.number()], + sts.array(() => v0.BundleDigest), + ) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v1.DomainId, sts.number(), sts.number()], + sts.array(() => v1.BundleDigest), + ) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v0.DomainId, number, number][], + ): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v1.DomainId, number, number][], + ): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType( + 'Domains.InboxedBundleAuthor', + 'Optional', + [v0.H256], + sts.bigint(), + ) as InboxedBundleAuthorV0, } /** @@ -943,28 +1632,40 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType( + 'Domains.HeadDomainNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadDomainNumberV0, } /** @@ -973,30 +1674,42 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType( + 'Domains.LastEpochStakingDistribution', + 'Optional', + [v0.DomainId], + v0.ElectionVerificationParams, + ) as LastEpochStakingDistributionV0, } /** @@ -1006,221 +1719,336 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> +} + +export const domainTxRangeState = { + v0: new StorageType( + 'Domains.DomainTxRangeState', + 'Optional', + [v0.DomainId], + v0.TxRangeState, + ) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType( + 'Domains.LatestConfirmedDomainBlock', + 'Optional', + [v1.DomainId], + v1.ConfirmedDomainBlock, + ) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType( + 'Domains.LatestSubmittedER', + 'Default', + [sts.tuple(() => [v3.DomainId, sts.bigint()])], + sts.number(), + ) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairs( + block: Block, + key: [v3.DomainId, bigint], + ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType( + 'Domains.OperatorHighestSlot', + 'Default', + [sts.bigint()], + sts.bigint(), + ) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint | undefined][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType( + 'Domains.OperatorBundleSlot', + 'Default', + [sts.bigint()], + sts.array(() => sts.bigint()), + ) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType( + 'Domains.PermissionedActionAllowedBy', + 'Optional', + [], + v5.PermissionedActionAllowedBy, + ) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType( + 'Domains.AccumulatedTreasuryFunds', + 'Default', + [], + sts.bigint(), + ) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgradeRecords', + 'Default', + [sts.number()], + sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), + ) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> + getMany( + block: Block, + keys: number[], + ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs( + block: Block, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairs( + block: Block, + key: number, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgrades', + 'Default', + [], + sts.array(() => sts.number()), + ) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/messenger/calls.ts b/indexers/consensus-squid/src/types/messenger/calls.ts index 03c0f7588..f3e94c30b 100644 --- a/indexers/consensus-squid/src/types/messenger/calls.ts +++ b/indexers/consensus-squid/src/types/messenger/calls.ts @@ -1,146 +1,146 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v3 from '../v3' import * as v5 from '../v5' -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), - /** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ - v5: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v5.ChainId, - params: v5.InitiateChannelParams, - }) - ), +export const initiateChannel = { + name: 'Messenger.initiate_channel', + /** + * See [`Pallet::initiate_channel`]. + */ + v0: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v0.ChainId, + params: v0.InitiateChannelParams, + }), + ), + /** + * A new Channel is initiated with a foreign chain. + * Next Channel ID is used to assign the new channel. + * Channel is set to initiated and do not accept or receive any messages. + */ + v5: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v5.ChainId, + params: v5.InitiateChannelParams, + }), + ), } -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), +export const closeChannel = { + name: 'Messenger.close_channel', + /** + * See [`Pallet::close_channel`]. + */ + v0: new CallType( + 'Messenger.close_channel', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + }), + ), } -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives an Inbox message that needs to be validated and processed. - */ - v5: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), +export const relayMessage = { + name: 'Messenger.relay_message', + /** + * See [`Pallet::relay_message`]. + */ + v0: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v0.CrossDomainMessage, + }), + ), + /** + * See [`Pallet::relay_message`]. + */ + v3: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v3.CrossDomainMessage, + }), + ), + /** + * Receives an Inbox message that needs to be validated and processed. + */ + v5: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v5.CrossDomainMessage, + }), + ), } -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives a response from the dst_chain for a message in Outbox. - */ - v5: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), +export const relayMessageResponse = { + name: 'Messenger.relay_message_response', + /** + * See [`Pallet::relay_message_response`]. + */ + v0: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v0.CrossDomainMessage, + }), + ), + /** + * See [`Pallet::relay_message_response`]. + */ + v3: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v3.CrossDomainMessage, + }), + ), + /** + * Receives a response from the dst_chain for a message in Outbox. + */ + v5: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v5.CrossDomainMessage, + }), + ), } -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), +export const updateConsensusChainAllowlist = { + name: 'Messenger.update_consensus_chain_allowlist', + /** + * See [`Pallet::update_consensus_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_consensus_chain_allowlist', + sts.struct({ + update: v3.ChainAllowlistUpdate, + }), + ), } -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), +export const initiateDomainUpdateChainAllowlist = { + name: 'Messenger.initiate_domain_update_chain_allowlist', + /** + * See [`Pallet::initiate_domain_update_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.initiate_domain_update_chain_allowlist', + sts.struct({ + domainId: v3.DomainId, + update: v3.ChainAllowlistUpdate, + }), + ), } -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), +export const updateDomainAllowlist = { + name: 'Messenger.update_domain_allowlist', + /** + * See [`Pallet::update_domain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_domain_allowlist', + sts.struct({ + updates: v3.DomainAllowlistUpdates, + }), + ), } diff --git a/indexers/consensus-squid/src/types/messenger/constants.ts b/indexers/consensus-squid/src/types/messenger/constants.ts index fecb47fda..50aac1818 100644 --- a/indexers/consensus-squid/src/types/messenger/constants.ts +++ b/indexers/consensus-squid/src/types/messenger/constants.ts @@ -1,23 +1,17 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v5 from '../v5' -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), +export const channelReserveFee = { + /** + * Channel reserve fee to open a channel. + */ + v3: new ConstantType('Messenger.ChannelReserveFee', sts.bigint()), } -export const channelInitReservePortion = { - /** - * Portion of Channel reserve taken by the protocol - * if the channel is in init state and is requested to be closed. - */ - v5: new ConstantType( - 'Messenger.ChannelInitReservePortion', - v5.Perbill - ), +export const channelInitReservePortion = { + /** + * Portion of Channel reserve taken by the protocol + * if the channel is in init state and is requested to be closed. + */ + v5: new ConstantType('Messenger.ChannelInitReservePortion', v5.Perbill), } diff --git a/indexers/consensus-squid/src/types/messenger/events.ts b/indexers/consensus-squid/src/types/messenger/events.ts index c36e8bf2b..05a77ea75 100644 --- a/indexers/consensus-squid/src/types/messenger/events.ts +++ b/indexers/consensus-squid/src/types/messenger/events.ts @@ -1,150 +1,150 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), +export const channelInitiated = { + name: 'Messenger.ChannelInitiated', + /** + * Emits when a channel between two chains is initiated. + */ + v0: new EventType( + 'Messenger.ChannelInitiated', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }), + ), } -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), +export const channelClosed = { + name: 'Messenger.ChannelClosed', + /** + * Emits when a channel between two chains is closed. + */ + v0: new EventType( + 'Messenger.ChannelClosed', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }), + ), } -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), +export const channelOpen = { + name: 'Messenger.ChannelOpen', + /** + * Emits when a channel between two chain is open. + */ + v0: new EventType( + 'Messenger.ChannelOpen', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }), + ), } -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), +export const outboxMessage = { + name: 'Messenger.OutboxMessage', + /** + * Emits when a new message is added to the outbox. + */ + v0: new EventType( + 'Messenger.OutboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + ), } -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), +export const outboxMessageResponse = { + name: 'Messenger.OutboxMessageResponse', + /** + * Emits when a message response is available for Outbox message. + */ + v0: new EventType( + 'Messenger.OutboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + ), } -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), +export const outboxMessageResult = { + name: 'Messenger.OutboxMessageResult', + /** + * Emits outbox message result. + */ + v0: new EventType( + 'Messenger.OutboxMessageResult', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: v0.OutboxMessageResult, + }), + ), } -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), +export const inboxMessage = { + name: 'Messenger.InboxMessage', + /** + * Emits when a new inbox message is validated and added to Inbox. + */ + v0: new EventType( + 'Messenger.InboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + ), } -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), +export const inboxMessageResponse = { + name: 'Messenger.InboxMessageResponse', + /** + * Emits when a message response is available for Inbox message. + */ + v0: new EventType( + 'Messenger.InboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/messenger/storage.ts b/indexers/consensus-squid/src/types/messenger/storage.ts index cb857a76e..94bdb8a24 100644 --- a/indexers/consensus-squid/src/types/messenger/storage.ts +++ b/indexers/consensus-squid/src/types/messenger/storage.ts @@ -1,114 +1,197 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v3 from '../v3' import * as v5 from '../v5' -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, +export const nextChannelId = { + /** + * Stores the next channel id for a foreign chain. + */ + v0: new StorageType( + 'Messenger.NextChannelId', + 'Default', + [v0.ChainId], + sts.bigint(), + ) as NextChannelIdV0, } /** * Stores the next channel id for a foreign chain. */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> +export interface NextChannelIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v0.ChainId): Promise + getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.ChainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.ChainId, v: bigint | undefined][]> + getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.ChainId, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.ChainId, + ): AsyncIterable<[k: v0.ChainId, v: bigint | undefined][]> } -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, +export const channels = { + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v0: new StorageType( + 'Messenger.Channels', + 'Optional', + [v0.ChainId, sts.bigint()], + v0.Channel, + ) as ChannelsV0, + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v3: new StorageType( + 'Messenger.Channels', + 'Optional', + [v3.ChainId, sts.bigint()], + v3.Channel, + ) as ChannelsV3, } /** * Stores channel config between two chains. * Key points to the foreign chain wrt own chain's storage name space */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> +export interface ChannelsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: bigint): Promise + getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + ): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + key2: bigint, + ): AsyncIterable<[v0.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> + getPairs( + block: Block, + key1: v0.ChainId, + ): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> + getPairs( + block: Block, + key1: v0.ChainId, + key2: bigint, + ): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + key2: bigint, + ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> } /** * Stores channel config between two chains. * Key points to the foreign chain wrt own chain's storage name space */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> +export interface ChannelsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v3.ChainId, key2: bigint): Promise + getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> + getKeys(block: Block): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v3.ChainId, + ): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v3.ChainId, + key2: bigint, + ): AsyncIterable<[v3.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> + getPairs( + block: Block, + key1: v3.ChainId, + ): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> + getPairs( + block: Block, + key1: v3.ChainId, + key2: bigint, + ): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v3.ChainId, + ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v3.ChainId, + key2: bigint, + ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> } -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, +export const inbox = { + /** + * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` + * and `relay_message`. + */ + v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, } /** * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` * and `relay_message`. */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> +export interface InboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, +export const inboxFee = { + /** + * A temporary storage of fees for executing an inbox message. + * The storage is cleared when the acknowledgement of inbox response is received + * from the src_chain. + */ + v0: new StorageType( + 'Messenger.InboxFee', + 'Optional', + [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], + sts.bigint(), + ) as InboxFeeV0, } /** @@ -116,217 +199,334 @@ export const inboxFee = { * The storage is cleared when the acknowledgement of inbox response is received * from the src_chain. */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> +export interface InboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys( + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairs( + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> } -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, +export const outboxFee = { + /** + * A temporary storage of fees for executing an outbox message and its response from dst_chain. + * The storage is cleared when src_chain receives the response from dst_chain. + */ + v0: new StorageType( + 'Messenger.OutboxFee', + 'Optional', + [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], + sts.bigint(), + ) as OutboxFeeV0, } /** * A temporary storage of fees for executing an outbox message and its response from dst_chain. * The storage is cleared when src_chain receives the response from dst_chain. */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> +export interface OutboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys( + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairs( + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, [bigint, bigint]], + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> } -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, +export const inboxResponses = { + /** + * Stores the message responses of the incoming processed responses. + * Used by the dst_chains to verify the message response. + */ + v0: new StorageType( + 'Messenger.InboxResponses', + 'Optional', + [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], + v0.Message, + ) as InboxResponsesV0, } /** * Stores the message responses of the incoming processed responses. * Used by the dst_chains to verify the message response. */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> +export interface InboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, bigint, bigint], + ): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairs( + block: Block, + key: [v0.ChainId, bigint, bigint], + ): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, bigint, bigint], + ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> } -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, +export const counterForInboxResponses = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType( + 'Messenger.CounterForInboxResponses', + 'Default', + [], + sts.number(), + ) as CounterForInboxResponsesV0, } /** * Counter for the related counted storage map */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface CounterForInboxResponsesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, +export const outbox = { + /** + * Stores the outgoing messages that are awaiting message responses from the dst_chain. + * Messages are processed in the outbox nonce order of chain's channel. + */ + v0: new StorageType( + 'Messenger.Outbox', + 'Optional', + [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], + v0.Message, + ) as OutboxV0, } /** * Stores the outgoing messages that are awaiting message responses from the dst_chain. * Messages are processed in the outbox nonce order of chain's channel. */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> +export interface OutboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, bigint, bigint], + ): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairs( + block: Block, + key: [v0.ChainId, bigint, bigint], + ): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.ChainId, bigint, bigint], + ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> } -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, +export const counterForOutbox = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType( + 'Messenger.CounterForOutbox', + 'Default', + [], + sts.number(), + ) as CounterForOutboxV0, } /** * Counter for the related counted storage map */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface CounterForOutboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, +export const outboxResponses = { + /** + * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` + * and `relay_message_response`. + */ + v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, } /** * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` * and `relay_message_response`. */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> +export interface OutboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, +export const blockMessages = { + /** + * A temporary storage to store all the messages to be relayed in this block. + * Will be cleared on the initialization on next block. + */ + v0: new StorageType( + 'Messenger.BlockMessages', + 'Optional', + [], + v0.BlockMessages, + ) as BlockMessagesV0, } /** * A temporary storage to store all the messages to be relayed in this block. * Will be cleared on the initialization on next block. */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> +export interface BlockMessagesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, +export const chainAllowlist = { + /** + * An allowlist of chains that can open channel with this chain. + */ + v3: new StorageType( + 'Messenger.ChainAllowlist', + 'Default', + [], + sts.array(() => v3.ChainId), + ) as ChainAllowlistV3, } /** * An allowlist of chains that can open channel with this chain. */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> +export interface ChainAllowlistV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.ChainId[] + get(block: Block): Promise } -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, +export const domainChainAllowlistUpdate = { + /** + * A temporary storage to store any allowlist updates to domain. + * Will be cleared in the next block once the previous block has a domain bundle. + */ + v3: new StorageType( + 'Messenger.DomainChainAllowlistUpdate', + 'Optional', + [v3.DomainId], + v3.DomainAllowlistUpdates, + ) as DomainChainAllowlistUpdateV3, } /** * A temporary storage to store any allowlist updates to domain. * Will be cleared in the next block once the previous block has a domain bundle. */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> +export interface DomainChainAllowlistUpdateV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v3.DomainId): Promise + getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> + getPairs( + block: Block, + key: v3.DomainId, + ): Promise<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v3.DomainId, + ): AsyncIterable<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> } -export const messageWeightTags = { - /** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ - v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, +export const messageWeightTags = { + /** + * Storage to store the weight tags for all the outbox and inbox response messages. + */ + v5: new StorageType( + 'Messenger.MessageWeightTags', + 'Optional', + [], + v5.MessageWeightTags, + ) as MessageWeightTagsV5, } /** * Storage to store the weight tags for all the outbox and inbox response messages. */ -export interface MessageWeightTagsV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.MessageWeightTags | undefined)> +export interface MessageWeightTagsV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/mmr/storage.ts b/indexers/consensus-squid/src/types/mmr/storage.ts index b4c49bbab..3412b1f24 100644 --- a/indexers/consensus-squid/src/types/mmr/storage.ts +++ b/indexers/consensus-squid/src/types/mmr/storage.ts @@ -1,64 +1,71 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const rootHash = { - /** - * Latest MMR Root hash. - */ - v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, +export const rootHash = { + /** + * Latest MMR Root hash. + */ + v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, } /** * Latest MMR Root hash. */ -export interface RootHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> +export interface RootHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise } -export const numberOfLeaves = { - /** - * Current size of the MMR (number of leaves). - */ - v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, +export const numberOfLeaves = { + /** + * Current size of the MMR (number of leaves). + */ + v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, } /** * Current size of the MMR (number of leaves). */ -export interface NumberOfLeavesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface NumberOfLeavesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const nodes = { - /** - * Hashes of the nodes in the MMR. - * - * Note this collection only contains MMR peaks, the inner nodes (and leaves) - * are pruned and only stored in the Offchain DB. - */ - v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, +export const nodes = { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + */ + v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, } /** * Hashes of the nodes in the MMR. - * + * * Note this collection only contains MMR peaks, the inner nodes (and leaves) * are pruned and only stored in the Offchain DB. */ -export interface NodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> +export interface NodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.H256 | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.H256 | undefined][]> } diff --git a/indexers/consensus-squid/src/types/offences-subspace/events.ts b/indexers/consensus-squid/src/types/offences-subspace/events.ts index 71fb77783..b0d052ed3 100644 --- a/indexers/consensus-squid/src/types/offences-subspace/events.ts +++ b/indexers/consensus-squid/src/types/offences-subspace/events.ts @@ -1,17 +1,17 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' -export const offence = { - name: 'OffencesSubspace.Offence', - /** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ - v0: new EventType( - 'OffencesSubspace.Offence', - sts.struct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }) - ), +export const offence = { + name: 'OffencesSubspace.Offence', + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ + v0: new EventType( + 'OffencesSubspace.Offence', + sts.struct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/offences-subspace/storage.ts b/indexers/consensus-squid/src/types/offences-subspace/storage.ts index bbc37e51f..9ee7e3999 100644 --- a/indexers/consensus-squid/src/types/offences-subspace/storage.ts +++ b/indexers/consensus-squid/src/types/offences-subspace/storage.ts @@ -1,90 +1,137 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const reports = { - /** - * The primary structure that holds all offence records keyed by report identifiers. - */ - v0: new StorageType('OffencesSubspace.Reports', 'Optional', [v0.H256], v0.OffenceDetails) as ReportsV0, +export const reports = { + /** + * The primary structure that holds all offence records keyed by report identifiers. + */ + v0: new StorageType( + 'OffencesSubspace.Reports', + 'Optional', + [v0.H256], + v0.OffenceDetails, + ) as ReportsV0, } /** * The primary structure that holds all offence records keyed by report identifiers. */ -export interface ReportsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.OffenceDetails | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> +export interface ReportsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: v0.OffenceDetails | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.OffenceDetails | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: v0.OffenceDetails | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: v0.OffenceDetails | undefined][]> } -export const concurrentReportsIndex = { - /** - * A vector of reports of the same kind that happened at the same time slot. - */ - v0: new StorageType('OffencesSubspace.ConcurrentReportsIndex', 'Default', [sts.bytes(), sts.bytes()], sts.array(() => v0.H256)) as ConcurrentReportsIndexV0, +export const concurrentReportsIndex = { + /** + * A vector of reports of the same kind that happened at the same time slot. + */ + v0: new StorageType( + 'OffencesSubspace.ConcurrentReportsIndex', + 'Default', + [sts.bytes(), sts.bytes()], + sts.array(() => v0.H256), + ) as ConcurrentReportsIndexV0, } /** * A vector of reports of the same kind that happened at the same time slot. */ -export interface ConcurrentReportsIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key1: Bytes, key2: Bytes): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[Bytes, Bytes][]> - getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key1: Bytes, key2: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> +export interface ConcurrentReportsIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key1: Bytes, key2: Bytes): Promise + getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: Bytes, + key2: Bytes, + ): AsyncIterable<[Bytes, Bytes][]> + getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> + getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> + getPairs( + block: Block, + key1: Bytes, + key2: Bytes, + ): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: Bytes, + ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: Bytes, + key2: Bytes, + ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> } -export const reportsByKindIndex = { - /** - * Enumerates all reports of a kind along with the time they happened. - * - * All reports are sorted by the time of offence. - * - * Note that the actual type of this mapping is `Vec`, this is because values of - * different types are not supported at the moment so we are doing the manual serialization. - */ - v0: new StorageType('OffencesSubspace.ReportsByKindIndex', 'Default', [sts.bytes()], sts.bytes()) as ReportsByKindIndexV0, +export const reportsByKindIndex = { + /** + * Enumerates all reports of a kind along with the time they happened. + * + * All reports are sorted by the time of offence. + * + * Note that the actual type of this mapping is `Vec`, this is because values of + * different types are not supported at the moment so we are doing the manual serialization. + */ + v0: new StorageType( + 'OffencesSubspace.ReportsByKindIndex', + 'Default', + [sts.bytes()], + sts.bytes(), + ) as ReportsByKindIndexV0, } /** * Enumerates all reports of a kind along with the time they happened. - * + * * All reports are sorted by the time of offence. - * + * * Note that the actual type of this mapping is `Vec`, this is because values of * different types are not supported at the moment so we are doing the manual serialization. */ -export interface ReportsByKindIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: Bytes): Promise<(Bytes | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (Bytes | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> +export interface ReportsByKindIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: Bytes): Promise + getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: Bytes | undefined][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: Bytes | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: Bytes | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: Bytes, + ): AsyncIterable<[k: Bytes, v: Bytes | undefined][]> } diff --git a/indexers/consensus-squid/src/types/rewards/calls.ts b/indexers/consensus-squid/src/types/rewards/calls.ts index b8486afff..1608b0cbe 100644 --- a/indexers/consensus-squid/src/types/rewards/calls.ts +++ b/indexers/consensus-squid/src/types/rewards/calls.ts @@ -1,16 +1,16 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v3 from '../v3' -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }), + ), } diff --git a/indexers/consensus-squid/src/types/rewards/constants.ts b/indexers/consensus-squid/src/types/rewards/constants.ts index e1004ecc1..960b446d6 100644 --- a/indexers/consensus-squid/src/types/rewards/constants.ts +++ b/indexers/consensus-squid/src/types/rewards/constants.ts @@ -1,61 +1,46 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType('Rewards.BlockReward', sts.bigint()), } -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType('Rewards.VoteReward', sts.bigint()), } -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType('Rewards.AvgBlockspaceUsageNumBlocks', sts.number()), } -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType('Rewards.TransactionByteFee', sts.bigint()), } -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType('Rewards.MaxRewardPoints', sts.number()), } -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]), + ), } diff --git a/indexers/consensus-squid/src/types/rewards/events.ts b/indexers/consensus-squid/src/types/rewards/events.ts index 5b01a1694..ce993f9b9 100644 --- a/indexers/consensus-squid/src/types/rewards/events.ts +++ b/indexers/consensus-squid/src/types/rewards/events.ts @@ -1,30 +1,30 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }), + ), } -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/rewards/storage.ts b/indexers/consensus-squid/src/types/rewards/storage.ts index 971093421..300403260 100644 --- a/indexers/consensus-squid/src/types/rewards/storage.ts +++ b/indexers/consensus-squid/src/types/rewards/storage.ts @@ -1,82 +1,102 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v3 from '../v3' -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType( + 'Rewards.AvgBlockspaceUsage', + 'Default', + [], + sts.number(), + ) as AvgBlockspaceUsageV3, } /** * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, } /** * Whether rewards are enabled */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType( + 'Rewards.RemainingIssuance', + 'Default', + [], + sts.bigint(), + ) as RemainingIssuanceV3, } /** * Tokens left to issue to farmers at any given time */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType( + 'Rewards.ProposerSubsidyPoints', + 'Default', + [], + sts.array(() => v3.RewardPoint), + ) as ProposerSubsidyPointsV3, } /** * Block proposer subsidy parameters */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise } -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType( + 'Rewards.VoterSubsidyPoints', + 'Default', + [], + sts.array(() => v3.RewardPoint), + ) as VoterSubsidyPointsV3, } /** * Voter subsidy parameters */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/runtime-configs/calls.ts b/indexers/consensus-squid/src/types/runtime-configs/calls.ts index d5c4a64e3..dceb07a36 100644 --- a/indexers/consensus-squid/src/types/runtime-configs/calls.ts +++ b/indexers/consensus-squid/src/types/runtime-configs/calls.ts @@ -1,53 +1,53 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' -export const setEnableDomains = { - name: 'RuntimeConfigs.set_enable_domains', - /** - * See [`Pallet::set_enable_domains`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_domains', - sts.struct({ - enableDomains: sts.boolean(), - }) - ), +export const setEnableDomains = { + name: 'RuntimeConfigs.set_enable_domains', + /** + * See [`Pallet::set_enable_domains`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_domains', + sts.struct({ + enableDomains: sts.boolean(), + }), + ), } -export const setEnableDynamicCostOfStorage = { - name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - /** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - sts.struct({ - enableDynamicCostOfStorage: sts.boolean(), - }) - ), +export const setEnableDynamicCostOfStorage = { + name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + /** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + sts.struct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + ), } -export const setEnableBalanceTransfers = { - name: 'RuntimeConfigs.set_enable_balance_transfers', - /** - * See [`Pallet::set_enable_balance_transfers`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_balance_transfers', - sts.struct({ - enableBalanceTransfers: sts.boolean(), - }) - ), +export const setEnableBalanceTransfers = { + name: 'RuntimeConfigs.set_enable_balance_transfers', + /** + * See [`Pallet::set_enable_balance_transfers`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_balance_transfers', + sts.struct({ + enableBalanceTransfers: sts.boolean(), + }), + ), } -export const setEnableNonRootCalls = { - name: 'RuntimeConfigs.set_enable_non_root_calls', - /** - * See [`Pallet::set_enable_non_root_calls`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_non_root_calls', - sts.struct({ - enableNonRootCalls: sts.boolean(), - }) - ), +export const setEnableNonRootCalls = { + name: 'RuntimeConfigs.set_enable_non_root_calls', + /** + * See [`Pallet::set_enable_non_root_calls`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_non_root_calls', + sts.struct({ + enableNonRootCalls: sts.boolean(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/runtime-configs/storage.ts b/indexers/consensus-squid/src/types/runtime-configs/storage.ts index 7ef56beaa..5cb4b80ca 100644 --- a/indexers/consensus-squid/src/types/runtime-configs/storage.ts +++ b/indexers/consensus-squid/src/types/runtime-configs/storage.ts @@ -1,75 +1,100 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' -export const enableDomains = { - /** - * Whether to enable calls in pallet-domains. - */ - v0: new StorageType('RuntimeConfigs.EnableDomains', 'Default', [], sts.boolean()) as EnableDomainsV0, +export const enableDomains = { + /** + * Whether to enable calls in pallet-domains. + */ + v0: new StorageType( + 'RuntimeConfigs.EnableDomains', + 'Default', + [], + sts.boolean(), + ) as EnableDomainsV0, } /** * Whether to enable calls in pallet-domains. */ -export interface EnableDomainsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface EnableDomainsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const enableDynamicCostOfStorage = { - /** - * Whether to enable dynamic cost of storage. - */ - v0: new StorageType('RuntimeConfigs.EnableDynamicCostOfStorage', 'Default', [], sts.boolean()) as EnableDynamicCostOfStorageV0, +export const enableDynamicCostOfStorage = { + /** + * Whether to enable dynamic cost of storage. + */ + v0: new StorageType( + 'RuntimeConfigs.EnableDynamicCostOfStorage', + 'Default', + [], + sts.boolean(), + ) as EnableDynamicCostOfStorageV0, } /** * Whether to enable dynamic cost of storage. */ -export interface EnableDynamicCostOfStorageV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface EnableDynamicCostOfStorageV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const enableBalanceTransfers = { - /** - * Whether to enable balances transfers. - */ - v0: new StorageType('RuntimeConfigs.EnableBalanceTransfers', 'Default', [], sts.boolean()) as EnableBalanceTransfersV0, +export const enableBalanceTransfers = { + /** + * Whether to enable balances transfers. + */ + v0: new StorageType( + 'RuntimeConfigs.EnableBalanceTransfers', + 'Default', + [], + sts.boolean(), + ) as EnableBalanceTransfersV0, } /** * Whether to enable balances transfers. */ -export interface EnableBalanceTransfersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface EnableBalanceTransfersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const enableNonRootCalls = { - /** - * Whether to enable calls from non-root account. - */ - v0: new StorageType('RuntimeConfigs.EnableNonRootCalls', 'Default', [], sts.boolean()) as EnableNonRootCallsV0, +export const enableNonRootCalls = { + /** + * Whether to enable calls from non-root account. + */ + v0: new StorageType( + 'RuntimeConfigs.EnableNonRootCalls', + 'Default', + [], + sts.boolean(), + ) as EnableNonRootCallsV0, } /** * Whether to enable calls from non-root account. */ -export interface EnableNonRootCallsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface EnableNonRootCallsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const confirmationDepthK = { - v0: new StorageType('RuntimeConfigs.ConfirmationDepthK', 'Default', [], sts.number()) as ConfirmationDepthKV0, +export const confirmationDepthK = { + v0: new StorageType( + 'RuntimeConfigs.ConfirmationDepthK', + 'Default', + [], + sts.number(), + ) as ConfirmationDepthKV0, } -export interface ConfirmationDepthKV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface ConfirmationDepthKV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts index f095c3c8a..9f7aad903 100644 --- a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts +++ b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts @@ -1,26 +1,38 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v5 from '../v5' -export const mmrRootHashes = { - /** - * Map of block numbers to mmr root hashes. - */ - v5: new StorageType('SubspaceMmr.MmrRootHashes', 'Optional', [sts.number()], v5.H256) as MmrRootHashesV5, +export const mmrRootHashes = { + /** + * Map of block numbers to mmr root hashes. + */ + v5: new StorageType( + 'SubspaceMmr.MmrRootHashes', + 'Optional', + [sts.number()], + v5.H256, + ) as MmrRootHashesV5, } /** * Map of block numbers to mmr root hashes. */ -export interface MmrRootHashesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> +export interface MmrRootHashesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v5.H256 | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v5.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v5.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v5.H256 | undefined][]> } diff --git a/indexers/consensus-squid/src/types/subspace/calls.ts b/indexers/consensus-squid/src/types/subspace/calls.ts index add70afae..02324c4fa 100644 --- a/indexers/consensus-squid/src/types/subspace/calls.ts +++ b/indexers/consensus-squid/src/types/subspace/calls.ts @@ -1,79 +1,76 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }), + ), } -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }), + ), } -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + ), } -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }), + ), } -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }), + ), } -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType('Subspace.enable_authoring_by_anyone', sts.unit()), } diff --git a/indexers/consensus-squid/src/types/subspace/constants.ts b/indexers/consensus-squid/src/types/subspace/constants.ts index 555317b21..e90f6126b 100644 --- a/indexers/consensus-squid/src/types/subspace/constants.ts +++ b/indexers/consensus-squid/src/types/subspace/constants.ts @@ -1,154 +1,118 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType('Subspace.BlockAuthoringDelay', v0.Slot), } -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionInterval', sts.number()), } -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionLookbackDepth', sts.number()), } -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionDelay', v0.Slot), } -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType('Subspace.EraDuration', sts.number()), } -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType('Subspace.InitialSolutionRange', sts.bigint()), } -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]), + ), } -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType('Subspace.ConfirmationDepthK', sts.number()), } -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType('Subspace.RecentSegments', v0.HistorySize), } -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]), + ), } -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType('Subspace.MinSectorLifetime', v0.HistorySize), } -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType('Subspace.ExpectedVotesPerBlock', sts.number()), } -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType('Subspace.MaxPiecesInSector', sts.number()), } -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType('Subspace.BlockSlotCount', sts.number()), } diff --git a/indexers/consensus-squid/src/types/subspace/events.ts b/indexers/consensus-squid/src/types/subspace/events.ts index 65427a471..08d785a58 100644 --- a/indexers/consensus-squid/src/types/subspace/events.ts +++ b/indexers/consensus-squid/src/types/subspace/events.ts @@ -1,31 +1,31 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }), + ), } -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }), + ), } diff --git a/indexers/consensus-squid/src/types/subspace/storage.ts b/indexers/consensus-squid/src/types/subspace/storage.ts index 8c1220cc5..eb4811562 100644 --- a/indexers/consensus-squid/src/types/subspace/storage.ts +++ b/indexers/consensus-squid/src/types/subspace/storage.ts @@ -1,390 +1,525 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v3 from '../v3' -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, } /** * The slot at which the first block was created. This is 0 until the first block of the chain. */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise } -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, } /** * Current slot number. */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise } -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType( + 'Subspace.PotSlotIterations', + 'Optional', + [], + v0.NonZeroU32, + ) as PotSlotIterationsV0, } /** * Number of iterations for proof of time per slot */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType( + 'Subspace.SolutionRanges', + 'Default', + [], + v0.SolutionRanges, + ) as SolutionRangesV0, } /** * Solution ranges used for challenges. */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise } -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType( + 'Subspace.ShouldAdjustSolutionRange', + 'Default', + [], + sts.boolean(), + ) as ShouldAdjustSolutionRangeV0, } /** * Storage to check if the solution range is to be adjusted for next era */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType( + 'Subspace.NextSolutionRangeOverride', + 'Optional', + [], + v0.SolutionRangeOverride, + ) as NextSolutionRangeOverrideV0, } /** * Override solution range during next update */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, } /** * Slot at which current era started. */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, } /** * A set of blocked farmers keyed by their public key. */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: null | undefined][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: null | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.Public, v: null | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.Public, + ): AsyncIterable<[k: v0.Public, v: null | undefined][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType( + 'Subspace.SegmentCommitment', + 'Optional', + [v0.SegmentIndex], + v0.SegmentCommitment, + ) as SegmentCommitmentV0, } /** * Mapping from segment index to corresponding segment commitment of contained records. */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged( + pageSize: number, + block: Block, + key: v0.SegmentIndex, + ): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairs( + block: Block, + key: v0.SegmentIndex, + ): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.SegmentIndex, + ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType( + 'Subspace.CounterForSegmentCommitment', + 'Default', + [], + sts.number(), + ) as CounterForSegmentCommitmentV0, } /** * Counter for the related counted storage map */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType( + 'Subspace.DidProcessSegmentHeaders', + 'Default', + [], + sts.boolean(), + ) as DidProcessSegmentHeadersV0, } /** * Whether the segment headers inherent has been processed in this block (temporary value). - * + * * This value is updated to `true` when processing `store_segment_headers` by a node. * It is then cleared at the end of each block execution in the `on_finalize` hook. */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType( + 'Subspace.ParentVoteVerificationData', + 'Optional', + [], + v0.VoteVerificationData, + ) as ParentVoteVerificationDataV0, } /** * Storage of previous vote verification data, updated on each block during finalization. */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType( + 'Subspace.ParentBlockAuthorInfo', + 'Optional', + [], + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + ) as ParentBlockAuthorInfoV0, } /** * Parent block author information. */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined> } -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, } /** * Enable rewards since specified block number. */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType( + 'Subspace.EnableRewardsBelowSolutionRange', + 'Optional', + [], + sts.bigint(), + ) as EnableRewardsBelowSolutionRangeV0, } /** * Enable rewards when solution range is below this threshold. */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType( + 'Subspace.CurrentBlockAuthorInfo', + 'Optional', + [], + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32]), + ) as CurrentBlockAuthorInfoV0, } /** * Temporary value (cleared at block finalization) with block author information. */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get( + block: Block, + ): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType( + 'Subspace.ParentBlockVoters', + 'Default', + [], + sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + sts.tuple(() => [v0.AccountId32, v0.Signature]), + ]), + ), + ) as ParentBlockVotersV0, } /** * Voters in the parent block (set at the end of the block with current values). */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault( + block: Block, + ): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get( + block: Block, + ): Promise< + | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + | undefined + > +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType( + 'Subspace.CurrentBlockVoters', + 'Optional', + [], + sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + sts.tuple(() => [v0.AccountId32, v0.Signature]), + ]), + ), + ) as CurrentBlockVotersV0, } /** * Temporary value (cleared at block finalization) with voters in the current block thus far. */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get( + block: Block, + ): Promise< + | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + | undefined + > +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType( + 'Subspace.PotEntropy', + 'Default', + [], + sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue])), + ) as PotEntropyV0, } /** * Entropy that needs to be injected into proof of time chain at specific slot associated with * block number it came from. */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<[number, v0.PotEntropyValue][] | undefined> } -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType( + 'Subspace.BlockRandomness', + 'Optional', + [], + v0.Randomness, + ) as BlockRandomnessV0, } /** * The current block randomness, updated at block initialization. When the proof of time feature * is enabled it derived from PoT otherwise PoR. */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType( + 'Subspace.AllowAuthoringByAnyone', + 'Default', + [], + sts.boolean(), + ) as AllowAuthoringByAnyoneV0, } /** * Allow block authoring by anyone or just root. */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType( + 'Subspace.RootPlotPublicKey', + 'Optional', + [], + v0.Public, + ) as RootPlotPublicKeyV0, } /** * Root plot public key. - * + * * Set just once to make sure no one else can author blocks until allowed for anyone. */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType( + 'Subspace.BlockSlots', + 'Default', + [], + sts.array(() => sts.tuple(() => [sts.number(), v3.Slot])), + ) as BlockSlotsV3, } /** * Bounded mapping from block number to slot */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<[number, v3.Slot][] | undefined> } diff --git a/indexers/consensus-squid/src/types/sudo/calls.ts b/indexers/consensus-squid/src/types/sudo/calls.ts index dd08aa2e5..97a48e8c0 100644 --- a/indexers/consensus-squid/src/types/sudo/calls.ts +++ b/indexers/consensus-squid/src/types/sudo/calls.ts @@ -1,164 +1,161 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const sudo = { - name: 'Sudo.sudo', - /** - * See [`Pallet::sudo`]. - */ - v0: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v0.Call, - }) - ), - /** - * See [`Pallet::sudo`]. - */ - v1: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v1.Call, - }) - ), - /** - * See [`Pallet::sudo`]. - */ - v3: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v3.Call, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ - v5: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v5.Call, - }) - ), +export const sudo = { + name: 'Sudo.sudo', + /** + * See [`Pallet::sudo`]. + */ + v0: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v0.Call, + }), + ), + /** + * See [`Pallet::sudo`]. + */ + v1: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v1.Call, + }), + ), + /** + * See [`Pallet::sudo`]. + */ + v3: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v3.Call, + }), + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + */ + v5: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v5.Call, + }), + ), } -export const sudoUncheckedWeight = { - name: 'Sudo.sudo_unchecked_weight', - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v0: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v1: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v3: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), +export const sudoUncheckedWeight = { + name: 'Sudo.sudo_unchecked_weight', + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v0: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }), + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v1: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }), + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v3: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }), + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }), + ), } -export const setKey = { - name: 'Sudo.set_key', - /** - * See [`Pallet::set_key`]. - */ - v0: new CallType( - 'Sudo.set_key', - sts.struct({ - new: v0.MultiAddress, - }) - ), +export const setKey = { + name: 'Sudo.set_key', + /** + * See [`Pallet::set_key`]. + */ + v0: new CallType( + 'Sudo.set_key', + sts.struct({ + new: v0.MultiAddress, + }), + ), } -export const sudoAs = { - name: 'Sudo.sudo_as', - /** - * See [`Pallet::sudo_as`]. - */ - v0: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v0.MultiAddress, - call: v0.Call, - }) - ), - /** - * See [`Pallet::sudo_as`]. - */ - v1: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v1.MultiAddress, - call: v1.Call, - }) - ), - /** - * See [`Pallet::sudo_as`]. - */ - v3: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v3.MultiAddress, - call: v3.Call, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v5.MultiAddress, - call: v5.Call, - }) - ), +export const sudoAs = { + name: 'Sudo.sudo_as', + /** + * See [`Pallet::sudo_as`]. + */ + v0: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v0.MultiAddress, + call: v0.Call, + }), + ), + /** + * See [`Pallet::sudo_as`]. + */ + v1: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v1.MultiAddress, + call: v1.Call, + }), + ), + /** + * See [`Pallet::sudo_as`]. + */ + v3: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v3.MultiAddress, + call: v3.Call, + }), + ), + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v5.MultiAddress, + call: v5.Call, + }), + ), } -export const removeKey = { - name: 'Sudo.remove_key', - /** - * See [`Pallet::remove_key`]. - */ - v0: new CallType( - 'Sudo.remove_key', - sts.unit() - ), +export const removeKey = { + name: 'Sudo.remove_key', + /** + * See [`Pallet::remove_key`]. + */ + v0: new CallType('Sudo.remove_key', sts.unit()), } diff --git a/indexers/consensus-squid/src/types/sudo/events.ts b/indexers/consensus-squid/src/types/sudo/events.ts index 2e134d96a..988804a76 100644 --- a/indexers/consensus-squid/src/types/sudo/events.ts +++ b/indexers/consensus-squid/src/types/sudo/events.ts @@ -1,65 +1,68 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const sudid = { - name: 'Sudo.Sudid', - /** - * A sudo call just took place. - */ - v0: new EventType( - 'Sudo.Sudid', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), +export const sudid = { + name: 'Sudo.Sudid', + /** + * A sudo call just took place. + */ + v0: new EventType( + 'Sudo.Sudid', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result( + () => sts.unit(), + () => v0.DispatchError, + ), + }), + ), } -export const keyChanged = { - name: 'Sudo.KeyChanged', - /** - * The sudo key has been updated. - */ - v0: new EventType( - 'Sudo.KeyChanged', - sts.struct({ - /** - * The old sudo key (if one was previously set). - */ - old: sts.option(() => v0.AccountId32), - /** - * The new sudo key (if one was set). - */ - new: v0.AccountId32, - }) - ), +export const keyChanged = { + name: 'Sudo.KeyChanged', + /** + * The sudo key has been updated. + */ + v0: new EventType( + 'Sudo.KeyChanged', + sts.struct({ + /** + * The old sudo key (if one was previously set). + */ + old: sts.option(() => v0.AccountId32), + /** + * The new sudo key (if one was set). + */ + new: v0.AccountId32, + }), + ), } -export const keyRemoved = { - name: 'Sudo.KeyRemoved', - /** - * The key was permanently removed. - */ - v0: new EventType( - 'Sudo.KeyRemoved', - sts.unit() - ), +export const keyRemoved = { + name: 'Sudo.KeyRemoved', + /** + * The key was permanently removed. + */ + v0: new EventType('Sudo.KeyRemoved', sts.unit()), } -export const sudoAsDone = { - name: 'Sudo.SudoAsDone', - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ - v0: new EventType( - 'Sudo.SudoAsDone', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), +export const sudoAsDone = { + name: 'Sudo.SudoAsDone', + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ + v0: new EventType( + 'Sudo.SudoAsDone', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result( + () => sts.unit(), + () => v0.DispatchError, + ), + }), + ), } diff --git a/indexers/consensus-squid/src/types/sudo/storage.ts b/indexers/consensus-squid/src/types/sudo/storage.ts index 21712c680..067124d80 100644 --- a/indexers/consensus-squid/src/types/sudo/storage.ts +++ b/indexers/consensus-squid/src/types/sudo/storage.ts @@ -1,17 +1,17 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const key = { - /** - * The `AccountId` of the sudo key. - */ - v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, +export const key = { + /** + * The `AccountId` of the sudo key. + */ + v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, } /** * The `AccountId` of the sudo key. */ -export interface KeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> +export interface KeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/support.ts b/indexers/consensus-squid/src/types/support.ts index 456dfc2fb..53e364bb5 100644 --- a/indexers/consensus-squid/src/types/support.ts +++ b/indexers/consensus-squid/src/types/support.ts @@ -1,142 +1,146 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' +import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' +import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' - -export {sts, Bytes, BitSequence, Option, Result} - +export { sts, Bytes, BitSequence, Option, Result } export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } - export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } - interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } - export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } - export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor( + private name: QualifiedName, + private type: T, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } - export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged( + pageSize: number, + block: Block, + ...args: any[] + ): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/consensus-squid/src/types/system/calls.ts b/indexers/consensus-squid/src/types/system/calls.ts index 24f23464e..7aab74fd6 100644 --- a/indexers/consensus-squid/src/types/system/calls.ts +++ b/indexers/consensus-squid/src/types/system/calls.ts @@ -1,146 +1,146 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }), + ), } -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }), + ), } -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }), + ), } -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }), + ), } -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + ), } -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }), + ), } -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + ), } -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }), + ), } -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }), + ), } -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }), + ), } -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/system/constants.ts b/indexers/consensus-squid/src/types/system/constants.ts index 653ab1df2..638f33f60 100644 --- a/indexers/consensus-squid/src/types/system/constants.ts +++ b/indexers/consensus-squid/src/types/system/constants.ts @@ -1,66 +1,48 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType('System.BlockWeights', v0.BlockWeights), } -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType('System.BlockLength', v0.BlockLength), } -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType('System.BlockHashCount', sts.number()), } -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType('System.DbWeight', v0.RuntimeDbWeight), } -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType('System.Version', v0.RuntimeVersion), } -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType('System.SS58Prefix', sts.number()), } diff --git a/indexers/consensus-squid/src/types/system/events.ts b/indexers/consensus-squid/src/types/system/events.ts index 2c8c5731b..e5a14e4aa 100644 --- a/indexers/consensus-squid/src/types/system/events.ts +++ b/indexers/consensus-squid/src/types/system/events.ts @@ -1,94 +1,91 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }), + ), } -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }), + ), } -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType('System.CodeUpdated', sts.unit()), } -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }), + ), } -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }), + ), } -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }), + ), } -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/system/storage.ts b/indexers/consensus-squid/src/types/system/storage.ts index 9f776b387..c2df3d971 100644 --- a/indexers/consensus-squid/src/types/system/storage.ts +++ b/indexers/consensus-squid/src/types/system/storage.ts @@ -1,405 +1,488 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, } /** * The full account information for a particular account ID. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, } /** * Total extrinsics count for the current block. */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, } /** * The current weight for the block. */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise } -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType( + 'System.AllExtrinsicsLen', + 'Optional', + [], + sts.number(), + ) as AllExtrinsicsLenV0, } /** * Total length (in bytes) for all extrinsics put together, for the current block. */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, } /** * Map of block numbers to block hashes. */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v0.H256 | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType( + 'System.ExtrinsicData', + 'Default', + [sts.number()], + sts.bytes(), + ) as ExtrinsicDataV0, } /** * Extrinsics data for the current block (maps an extrinsic's index to its data). */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: Bytes | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: Bytes | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: Bytes | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: Bytes | undefined][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, } /** * The current block number being processed. Set by `execute_block`. */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, } /** * Hash of the previous block. */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise } -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, } /** * Digest of the current block, also part of the block header. */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v0.EventRecord), + ) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v1.EventRecord), + ) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v5.EventRecord), + ) as EventsV5, } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise } -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, } /** * The number of events in the `Events` list. */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType( + 'System.EventTopics', + 'Default', + [v0.H256], + sts.array(() => sts.tuple(() => [sts.number(), sts.number()])), + ) as EventTopicsV0, } /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `>` list. - * + * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. - * + * * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<[number, number][] | undefined> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: [number, number][] | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: [number, number][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType( + 'System.LastRuntimeUpgrade', + 'Optional', + [], + v0.LastRuntimeUpgradeInfo, + ) as LastRuntimeUpgradeV0, } /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType( + 'System.UpgradedToU32RefCount', + 'Default', + [], + sts.boolean(), + ) as UpgradedToU32RefCountV0, } /** * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType( + 'System.UpgradedToTripleRefCount', + 'Default', + [], + sts.boolean(), + ) as UpgradedToTripleRefCountV0, } /** * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False * (default) if not. */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, } /** * The execution phase of the block. */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType( + 'System.AuthorizedUpgrade', + 'Optional', + [], + v0.CodeUpgradeAuthorization, + ) as AuthorizedUpgradeV0, } /** * `Some` if a code upgrade has been authorized. */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType( + 'System.InherentsApplied', + 'Default', + [], + sts.boolean(), + ) as InherentsAppliedV5, } /** * Whether all inherents have been applied. */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/timestamp/calls.ts b/indexers/consensus-squid/src/types/timestamp/calls.ts index 60a975536..23fa0252f 100644 --- a/indexers/consensus-squid/src/types/timestamp/calls.ts +++ b/indexers/consensus-squid/src/types/timestamp/calls.ts @@ -1,14 +1,14 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), +export const set = { + name: 'Timestamp.set', + /** + * See [`Pallet::set`]. + */ + v0: new CallType( + 'Timestamp.set', + sts.struct({ + now: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/timestamp/constants.ts b/indexers/consensus-squid/src/types/timestamp/constants.ts index 09884d72c..e9076230e 100644 --- a/indexers/consensus-squid/src/types/timestamp/constants.ts +++ b/indexers/consensus-squid/src/types/timestamp/constants.ts @@ -1,16 +1,13 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), +export const minimumPeriod = { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + */ + v0: new ConstantType('Timestamp.MinimumPeriod', sts.bigint()), } diff --git a/indexers/consensus-squid/src/types/timestamp/storage.ts b/indexers/consensus-squid/src/types/timestamp/storage.ts index 1bf820c09..781b93834 100644 --- a/indexers/consensus-squid/src/types/timestamp/storage.ts +++ b/indexers/consensus-squid/src/types/timestamp/storage.ts @@ -1,39 +1,39 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, +export const now = { + /** + * The current time for the current block. + */ + v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, } /** * The current time for the current block. */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface NowV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, +export const didUpdate = { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, } /** * Whether the timestamp has been updated in this block. - * + * * This value is updated to `true` upon successful submission of a timestamp by a node. * It is then checked at the end of each block execution in the `on_finalize` hook. */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface DidUpdateV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/transaction-fees/constants.ts b/indexers/consensus-squid/src/types/transaction-fees/constants.ts index 60de86b39..36eb4e3eb 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/constants.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/constants.ts @@ -1,43 +1,31 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType('TransactionFees.MinReplicationFactor', sts.number()), } -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType('TransactionFees.CreditSupply', sts.bigint()), } -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType('TransactionFees.TotalSpacePledged', sts.bigint()), } -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType('TransactionFees.BlockchainHistorySize', sts.bigint()), } diff --git a/indexers/consensus-squid/src/types/transaction-fees/events.ts b/indexers/consensus-squid/src/types/transaction-fees/events.ts index 4726ccd18..e7afe93bb 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/events.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/events.ts @@ -1,54 +1,54 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }), + ), } -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/transaction-fees/storage.ts b/indexers/consensus-squid/src/types/transaction-fees/storage.ts index 34c003453..45d0515c6 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/storage.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/storage.ts @@ -1,86 +1,106 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType( + 'TransactionFees.TransactionByteFee', + 'Default', + [], + v0.BlockTransactionByteFee, + ) as TransactionByteFeeV0, } /** * The value of `transaction_byte_fee` for both the current and the next block. - * + * * The `next` value of `transaction_byte_fee` is updated at block finalization and used to * validate extrinsic to be included in the next block, the value is move to `current` at * block initialization and used to execute extrinsic in the current block. Together it * ensure we use the same value for both validating and executing the extrinsic. - * + * * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in * the genesis block which means there will be no signed extrinsic included in block #1. */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise } -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType( + 'TransactionFees.IsDuringBlockExecution', + 'Default', + [], + sts.boolean(), + ) as IsDuringBlockExecutionV0, } /** * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` * is used to validate extrinsic or execute extrinsic. */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType( + 'TransactionFees.BlockAuthor', + 'Optional', + [], + v0.AccountId32, + ) as BlockAuthorV0, } /** * Temporary value (cleared at block finalization) which contains current block author, so we * can issue fees during block finalization. */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType( + 'TransactionFees.CollectedBlockFees', + 'Optional', + [], + v0.CollectedFees, + ) as CollectedBlockFeesV0, } /** * Temporary value (cleared at block finalization) which contains current block fees, so we can * issue fees during block finalization. */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/transaction-payment/constants.ts b/indexers/consensus-squid/src/types/transaction-payment/constants.ts index 92856764a..c7363273b 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/constants.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/constants.ts @@ -1,31 +1,28 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType('TransactionPayment.OperationalFeeMultiplier', sts.number()), } diff --git a/indexers/consensus-squid/src/types/transaction-payment/events.ts b/indexers/consensus-squid/src/types/transaction-payment/events.ts index f2e82a56e..8f317f986 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/events.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/events.ts @@ -1,18 +1,18 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/transaction-payment/storage.ts b/indexers/consensus-squid/src/types/transaction-payment/storage.ts index 1fe2ddae7..6deaeec28 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/storage.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/storage.ts @@ -1,22 +1,32 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, +export const nextFeeMultiplier = { + v0: new StorageType( + 'TransactionPayment.NextFeeMultiplier', + 'Default', + [], + v0.FixedU128, + ) as NextFeeMultiplierV0, } -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise } -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, +export const storageVersion = { + v0: new StorageType( + 'TransactionPayment.StorageVersion', + 'Default', + [], + v0.Releases, + ) as StorageVersionV0, } -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise } diff --git a/indexers/consensus-squid/src/types/transporter/calls.ts b/indexers/consensus-squid/src/types/transporter/calls.ts index a3b19e8e7..6e5dd81f0 100644 --- a/indexers/consensus-squid/src/types/transporter/calls.ts +++ b/indexers/consensus-squid/src/types/transporter/calls.ts @@ -1,16 +1,16 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const transfer = { - name: 'Transporter.transfer', - /** - * See [`Pallet::transfer`]. - */ - v0: new CallType( - 'Transporter.transfer', - sts.struct({ - dstLocation: v0.Location, - amount: sts.bigint(), - }) - ), +export const transfer = { + name: 'Transporter.transfer', + /** + * See [`Pallet::transfer`]. + */ + v0: new CallType( + 'Transporter.transfer', + sts.struct({ + dstLocation: v0.Location, + amount: sts.bigint(), + }), + ), } diff --git a/indexers/consensus-squid/src/types/transporter/events.ts b/indexers/consensus-squid/src/types/transporter/events.ts index 7d966a266..40188b7ee 100644 --- a/indexers/consensus-squid/src/types/transporter/events.ts +++ b/indexers/consensus-squid/src/types/transporter/events.ts @@ -1,86 +1,86 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const outgoingTransferInitiated = { - name: 'Transporter.OutgoingTransferInitiated', - /** - * Emits when there is a new outgoing transfer. - */ - v0: new EventType( - 'Transporter.OutgoingTransferInitiated', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), +export const outgoingTransferInitiated = { + name: 'Transporter.OutgoingTransferInitiated', + /** + * Emits when there is a new outgoing transfer. + */ + v0: new EventType( + 'Transporter.OutgoingTransferInitiated', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + ), } -export const outgoingTransferFailed = { - name: 'Transporter.OutgoingTransferFailed', - /** - * Emits when a given outgoing transfer was failed on dst_chain. - */ - v0: new EventType( - 'Transporter.OutgoingTransferFailed', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - /** - * Error from dst_chain endpoint. - */ - err: v0.DispatchError, - }) - ), +export const outgoingTransferFailed = { + name: 'Transporter.OutgoingTransferFailed', + /** + * Emits when a given outgoing transfer was failed on dst_chain. + */ + v0: new EventType( + 'Transporter.OutgoingTransferFailed', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + /** + * Error from dst_chain endpoint. + */ + err: v0.DispatchError, + }), + ), } -export const outgoingTransferSuccessful = { - name: 'Transporter.OutgoingTransferSuccessful', - /** - * Emits when a given outgoing transfer was successful. - */ - v0: new EventType( - 'Transporter.OutgoingTransferSuccessful', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), +export const outgoingTransferSuccessful = { + name: 'Transporter.OutgoingTransferSuccessful', + /** + * Emits when a given outgoing transfer was successful. + */ + v0: new EventType( + 'Transporter.OutgoingTransferSuccessful', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + ), } -export const incomingTransferSuccessful = { - name: 'Transporter.IncomingTransferSuccessful', - /** - * Emits when a given incoming transfer was successfully processed. - */ - v0: new EventType( - 'Transporter.IncomingTransferSuccessful', - sts.struct({ - /** - * Source chain the transfer is coming from. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), +export const incomingTransferSuccessful = { + name: 'Transporter.IncomingTransferSuccessful', + /** + * Emits when a given incoming transfer was successfully processed. + */ + v0: new EventType( + 'Transporter.IncomingTransferSuccessful', + sts.struct({ + /** + * Source chain the transfer is coming from. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + ), } diff --git a/indexers/consensus-squid/src/types/transporter/storage.ts b/indexers/consensus-squid/src/types/transporter/storage.ts index d96aabc69..f8c638586 100644 --- a/indexers/consensus-squid/src/types/transporter/storage.ts +++ b/indexers/consensus-squid/src/types/transporter/storage.ts @@ -1,132 +1,255 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const outgoingTransfers = { - /** - * All the outgoing transfers on this execution environment. - */ - v0: new StorageType('Transporter.OutgoingTransfers', 'Optional', [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], v0.Transfer) as OutgoingTransfersV0, +export const outgoingTransfers = { + /** + * All the outgoing transfers on this execution environment. + */ + v0: new StorageType( + 'Transporter.OutgoingTransfers', + 'Optional', + [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], + v0.Transfer, + ) as OutgoingTransfersV0, } /** * All the outgoing transfers on this execution environment. */ -export interface OutgoingTransfersV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<(v0.Transfer | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(v0.Transfer | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> +export interface OutgoingTransfersV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise + getMany( + block: Block, + keys: [v0.ChainId, [bigint, bigint]][], + ): Promise<(v0.Transfer | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys( + block: Block, + key1: v0.ChainId, + key2: [bigint, bigint], + ): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + key2: [bigint, bigint], + ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> + getPairs( + block: Block, + key1: v0.ChainId, + ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> + getPairs( + block: Block, + key1: v0.ChainId, + key2: [bigint, bigint], + ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.ChainId, + key2: [bigint, bigint], + ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> } -export const domainBalances = { - /** - * Domain balances. - */ - v1: new StorageType('Transporter.DomainBalances', 'Default', [v1.DomainId], sts.bigint()) as DomainBalancesV1, +export const domainBalances = { + /** + * Domain balances. + */ + v1: new StorageType( + 'Transporter.DomainBalances', + 'Default', + [v1.DomainId], + sts.bigint(), + ) as DomainBalancesV1, } /** * Domain balances. */ -export interface DomainBalancesV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v1.DomainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> +export interface DomainBalancesV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: bigint | undefined][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: bigint | undefined][]> } -export const chainTransfers = { - /** - * A temporary storage that tracks total transfers from this chain. - * Clears on on_initialize for every block. - */ - v1: new StorageType('Transporter.ChainTransfers', 'Default', [], v1.Transfers) as ChainTransfersV1, +export const chainTransfers = { + /** + * A temporary storage that tracks total transfers from this chain. + * Clears on on_initialize for every block. + */ + v1: new StorageType( + 'Transporter.ChainTransfers', + 'Default', + [], + v1.Transfers, + ) as ChainTransfersV1, } /** * A temporary storage that tracks total transfers from this chain. * Clears on on_initialize for every block. */ -export interface ChainTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.Transfers - get(block: Block): Promise<(v1.Transfers | undefined)> +export interface ChainTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.Transfers + get(block: Block): Promise } -export const unconfirmedTransfers = { - /** - * Storage to track unconfirmed transfers between different chains. - */ - v1: new StorageType('Transporter.UnconfirmedTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as UnconfirmedTransfersV1, +export const unconfirmedTransfers = { + /** + * Storage to track unconfirmed transfers between different chains. + */ + v1: new StorageType( + 'Transporter.UnconfirmedTransfers', + 'Default', + [v1.ChainId, v1.ChainId], + sts.bigint(), + ) as UnconfirmedTransfersV1, } /** * Storage to track unconfirmed transfers between different chains. */ -export interface UnconfirmedTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> +export interface UnconfirmedTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + ): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairs( + block: Block, + key1: v1.ChainId, + ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairs( + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> } -export const cancelledTransfers = { - /** - * Storage to track cancelled transfers between different chains. - */ - v1: new StorageType('Transporter.CancelledTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as CancelledTransfersV1, +export const cancelledTransfers = { + /** + * Storage to track cancelled transfers between different chains. + */ + v1: new StorageType( + 'Transporter.CancelledTransfers', + 'Default', + [v1.ChainId, v1.ChainId], + sts.bigint(), + ) as CancelledTransfersV1, } /** * Storage to track cancelled transfers between different chains. */ -export interface CancelledTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> +export interface CancelledTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + ): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairs( + block: Block, + key1: v1.ChainId, + ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairs( + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.ChainId, + key2: v1.ChainId, + ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> } diff --git a/indexers/consensus-squid/src/types/utility/calls.ts b/indexers/consensus-squid/src/types/utility/calls.ts index d40533708..c1bd5c0e9 100644 --- a/indexers/consensus-squid/src/types/utility/calls.ts +++ b/indexers/consensus-squid/src/types/utility/calls.ts @@ -1,320 +1,320 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ - v5: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), +export const batch = { + name: 'Utility.batch', + /** + * See [`Pallet::batch`]. + */ + v0: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }), + ), + /** + * See [`Pallet::batch`]. + */ + v1: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }), + ), + /** + * See [`Pallet::batch`]. + */ + v3: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }), + ), + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + */ + v5: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }), + ), } -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), - /** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v5.Call, - }) - ), +export const asDerivative = { + name: 'Utility.as_derivative', + /** + * See [`Pallet::as_derivative`]. + */ + v0: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v0.Call, + }), + ), + /** + * See [`Pallet::as_derivative`]. + */ + v1: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v1.Call, + }), + ), + /** + * See [`Pallet::as_derivative`]. + */ + v3: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v3.Call, + }), + ), + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v5.Call, + }), + ), } -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), +export const batchAll = { + name: 'Utility.batch_all', + /** + * See [`Pallet::batch_all`]. + */ + v0: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v0.Call), + }), + ), + /** + * See [`Pallet::batch_all`]. + */ + v1: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v1.Call), + }), + ), + /** + * See [`Pallet::batch_all`]. + */ + v3: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v3.Call), + }), + ), + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v5.Call), + }), + ), } -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), - /** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ - v5: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v5.OriginCaller, - call: v5.Call, - }) - ), +export const dispatchAs = { + name: 'Utility.dispatch_as', + /** + * See [`Pallet::dispatch_as`]. + */ + v0: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v0.OriginCaller, + call: v0.Call, + }), + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v1: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v1.OriginCaller, + call: v1.Call, + }), + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v3: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v3.OriginCaller, + call: v3.Call, + }), + ), + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + */ + v5: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v5.OriginCaller, + call: v5.Call, + }), + ), } -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), +export const forceBatch = { + name: 'Utility.force_batch', + /** + * See [`Pallet::force_batch`]. + */ + v0: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }), + ), + /** + * See [`Pallet::force_batch`]. + */ + v1: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }), + ), + /** + * See [`Pallet::force_batch`]. + */ + v3: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }), + ), + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }), + ), } -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ - v5: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), +export const withWeight = { + name: 'Utility.with_weight', + /** + * See [`Pallet::with_weight`]. + */ + v0: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }), + ), + /** + * See [`Pallet::with_weight`]. + */ + v1: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }), + ), + /** + * See [`Pallet::with_weight`]. + */ + v3: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }), + ), + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + */ + v5: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }), + ), } diff --git a/indexers/consensus-squid/src/types/utility/constants.ts b/indexers/consensus-squid/src/types/utility/constants.ts index e82480598..892caa33e 100644 --- a/indexers/consensus-squid/src/types/utility/constants.ts +++ b/indexers/consensus-squid/src/types/utility/constants.ts @@ -1,11 +1,8 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), +export const batchedCallsLimit = { + /** + * The limit on the number of batched calls. + */ + v0: new ConstantType('Utility.batched_calls_limit', sts.number()), } diff --git a/indexers/consensus-squid/src/types/utility/events.ts b/indexers/consensus-squid/src/types/utility/events.ts index 1652db0da..93ef592af 100644 --- a/indexers/consensus-squid/src/types/utility/events.ts +++ b/indexers/consensus-squid/src/types/utility/events.ts @@ -1,76 +1,70 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), +export const batchInterrupted = { + name: 'Utility.BatchInterrupted', + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ + v0: new EventType( + 'Utility.BatchInterrupted', + sts.struct({ + index: sts.number(), + error: v0.DispatchError, + }), + ), } -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), +export const batchCompleted = { + name: 'Utility.BatchCompleted', + /** + * Batch of dispatches completed fully with no error. + */ + v0: new EventType('Utility.BatchCompleted', sts.unit()), } -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), +export const batchCompletedWithErrors = { + name: 'Utility.BatchCompletedWithErrors', + /** + * Batch of dispatches completed but has errors. + */ + v0: new EventType('Utility.BatchCompletedWithErrors', sts.unit()), } -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), +export const itemCompleted = { + name: 'Utility.ItemCompleted', + /** + * A single item within a Batch of dispatches has completed with no error. + */ + v0: new EventType('Utility.ItemCompleted', sts.unit()), } -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), +export const itemFailed = { + name: 'Utility.ItemFailed', + /** + * A single item within a Batch of dispatches has completed with error. + */ + v0: new EventType( + 'Utility.ItemFailed', + sts.struct({ + error: v0.DispatchError, + }), + ), } -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), +export const dispatchedAs = { + name: 'Utility.DispatchedAs', + /** + * A call was dispatched. + */ + v0: new EventType( + 'Utility.DispatchedAs', + sts.struct({ + result: sts.result( + () => sts.unit(), + () => v0.DispatchError, + ), + }), + ), } diff --git a/indexers/consensus-squid/src/types/v0.ts b/indexers/consensus-squid/src/types/v0.ts index 14718c7e9..1de686fd0 100644 --- a/indexers/consensus-squid/src/types/v0.ts +++ b/indexers/consensus-squid/src/types/v0.ts @@ -1,809 +1,863 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const HistorySize = sts.bigint() export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } + return { + read: sts.bigint(), + write: sts.bigint(), + } }) export interface RuntimeDbWeight { - read: bigint - write: bigint + read: bigint + write: bigint } export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } + return { + max: Type_85, + } }) export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } }) export interface Type_85 { - normal: number - operational: number - mandatory: number + normal: number + operational: number + mandatory: number } export interface BlockLength { - max: Type_85 + max: Type_85 } export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } }) export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } }) export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } }) export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) + baseExtrinsic: Weight + maxExtrinsic?: Weight | undefined + maxTotal?: Weight | undefined + reserved?: Weight | undefined } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass } export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 } export interface Transfer { - amount: bigint - sender: Location - receiver: Location + amount: bigint + sender: Location + receiver: Location } export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const Transfer: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - sender: Location, - receiver: Location, - } + return { + amount: sts.bigint(), + sender: Location, + receiver: Location, + } }) export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] + outbox: [ChainId, [bigint, bigint], MessageWeightTag][] + inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] } -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = + | MessageWeightTag_EndpointRequest + | MessageWeightTag_EndpointResponse + | MessageWeightTag_None + | MessageWeightTag_ProtocolChannelClose + | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } + return { + outbox: sts.array(() => + sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag]), + ), + inboxResponses: sts.array(() => + sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag]), + ), + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + payload: VersionedPayload + lastDeliveredMessageResponseNonce?: bigint | undefined } export type VersionedPayload = VersionedPayload_V0 export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload + __kind: 'V0' + value: Payload } export type Payload = Payload_Endpoint | Payload_Protocol export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 + __kind: 'Endpoint' + value: Type_294 } export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse + __kind: 'Protocol' + value: RequestResponse } export type RequestResponse = RequestResponse_Request | RequestResponse_Response export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest + __kind: 'Request' + value: ProtocolMessageRequest } export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'Response' + value: Result +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen +export type ProtocolMessageRequest = + | ProtocolMessageRequest_ChannelClose + | ProtocolMessageRequest_ChannelOpen export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' + __kind: 'ChannelClose' } export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams + __kind: 'ChannelOpen' + value: InitiateChannelParams } export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } export interface FeeModel { - relayFee: bigint + relayFee: bigint } export type Type_294 = Type_294_Request | Type_294_Response export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest + __kind: 'Request' + value: EndpointRequest } export interface Type_294_Response { - __kind: 'Response' - value: Result + __kind: 'Response' + value: Result } export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes + srcEndpoint: Endpoint + dstEndpoint: Endpoint + payload: Bytes } export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + payload: VersionedPayload, + lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), + } }) export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } + return { + V0: Payload, + } }) export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } + return { + Endpoint: Type_294, + Protocol: RequestResponse, + } }) export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } + return { + Request: ProtocolMessageRequest, + Response: sts.result( + () => sts.unit(), + () => DispatchError, + ), + } }) export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } + return { + ChannelClose: sts.unit(), + ChannelOpen: InitiateChannelParams, + } }) export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } + return { + Request: EndpointRequest, + Response: sts.result( + () => sts.bytes(), + () => DispatchError, + ), + } }) export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } + return { + srcEndpoint: Endpoint, + dstEndpoint: Endpoint, + payload: sts.bytes(), + } }) export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: bigint | undefined + maxOutgoingMessages: number + fee: FeeModel } export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open export interface ChannelState_Closed { - __kind: 'Closed' + __kind: 'Closed' } export interface ChannelState_Initiated { - __kind: 'Initiated' + __kind: 'Initiated' } export interface ChannelState_Open { - __kind: 'Open' + __kind: 'Open' } export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } }) export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: [DomainEpoch, number, bigint] | undefined } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => + sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), + ), + } }) export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -815,101 +869,104 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -917,18 +974,20 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -936,33 +995,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -970,18 +1029,18 @@ export type DomainId = number export type Releases = Releases_V1Ancient | Releases_V2 export interface Releases_V1Ancient { - __kind: 'V1Ancient' + __kind: 'V1Ancient' } export interface Releases_V2 { - __kind: 'V2' + __kind: 'V2' } export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } }) export type FixedU128 = bigint @@ -989,174 +1048,176 @@ export type FixedU128 = bigint export const FixedU128 = sts.bigint() export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint + storage: bigint + compute: bigint + tips: bigint } export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } }) export interface BlockTransactionByteFee { - current: bigint - next: bigint + current: bigint + next: bigint } export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } + return { + current: sts.bigint(), + next: sts.bigint(), + } }) export interface Type_152 { - amount: bigint + amount: bigint } export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } + return { + amount: sts.bigint(), + } }) export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface ReserveData { - id: Bytes - amount: bigint + id: Bytes + amount: bigint } export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } + return { + id: sts.bytes(), + amount: sts.bigint(), + } }) export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons + id: Bytes + amount: bigint + reasons: Reasons } export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc export interface Reasons_All { - __kind: 'All' + __kind: 'All' } export interface Reasons_Fee { - __kind: 'Fee' + __kind: 'Fee' } export interface Reasons_Misc { - __kind: 'Misc' + __kind: 'Misc' } export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } }) export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } }) export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags } export type ExtraFlags = bigint export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } }) export const ExtraFlags = sts.bigint() export interface OffenceDetails { - offender: Public + offender: Public } export const OffenceDetails: sts.Type = sts.struct(() => { - return { - offender: Public, - } + return { + offender: Public, + } }) export type Randomness = Bytes @@ -1164,15 +1225,15 @@ export type Randomness = Bytes export const Randomness = sts.bytes() export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes + targetSlot?: Slot | undefined + entropy: Bytes } export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } }) export type Signature = Bytes @@ -1180,33 +1241,33 @@ export type Signature = Bytes export const Signature = sts.bytes() export interface Scalar { - inner: Bytes + inner: Bytes } export type PieceOffset = number export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export const PieceOffset = sts.number() export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot } export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } }) export type SegmentIndex = bigint @@ -1220,31 +1281,31 @@ export const SegmentIndex = sts.bigint() export type Public = Bytes export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint + solutionRange: bigint + votingSolutionRange: bigint } export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } }) export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) + current: bigint + next?: bigint | undefined + votingCurrent: bigint + votingNext?: bigint | undefined } export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } }) export type NonZeroU32 = number @@ -1256,174 +1317,196 @@ export type Slot = bigint export const Slot = sts.bigint() export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean + codeHash: H256 + checkVersion: boolean } export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } + return { + codeHash: H256, + checkVersion: sts.boolean(), + } }) export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string + specVersion: number + specName: string } export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } + return { + specVersion: sts.number(), + specName: sts.string(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -1431,101 +1514,105 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError + __kind: 'ItemFailed' + error: DispatchError } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -1538,199 +1625,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1742,45 +1845,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } /** @@ -1792,18 +1895,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1817,122 +1920,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1940,175 +2051,219 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle +export type SlashedReason = + | SlashedReason_BadExecutionReceipt + | SlashedReason_BundleEquivocation + | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -2116,61 +2271,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -2178,1165 +2333,1195 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) /** * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal +export type DigestItem = + | DigestItem_Consensus + | DigestItem_Other + | DigestItem_PreRuntime + | DigestItem_RuntimeEnvironmentUpdated + | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) export type H256 = Bytes export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight + normal: Weight + operational: Weight + mandatory: Weight } export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } }) export type AccountId32 = Bytes export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData } export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + } }) export interface BlockInfo { - blockNumber: number - blockHash: H256 + blockNumber: number + blockHash: H256 } export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: [BlockInfo, StorageProof] | undefined + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return { - } + return {} }) export type Void = never @@ -3344,210 +3529,225 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer +export type VestingCall = + | VestingCall_claim + | VestingCall_claim_for + | VestingCall_update_vesting_schedules + | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw +export type MultiAddress = + | MultiAddress_Address20 + | MultiAddress_Address32 + | MultiAddress_Id + | MultiAddress_Index + | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight +export type UtilityCall = + | UtilityCall_as_derivative + | UtilityCall_batch + | UtilityCall_batch_all + | UtilityCall_dispatch_as + | UtilityCall_force_batch + | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) /** @@ -3559,20 +3759,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3584,323 +3784,345 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage +export type SystemCall = + | SystemCall_apply_authorized_upgrade + | SystemCall_authorize_upgrade + | SystemCall_authorize_upgrade_without_checks + | SystemCall_kill_prefix + | SystemCall_kill_storage + | SystemCall_remark + | SystemCall_remark_with_event + | SystemCall_set_code + | SystemCall_set_code_without_checks + | SystemCall_set_heap_pages + | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight +export type SudoCall = + | SudoCall_remove_key + | SudoCall_set_key + | SudoCall_sudo + | SudoCall_sudo_as + | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote +export type SubspaceCall = + | SubspaceCall_enable_authoring_by_anyone + | SubspaceCall_enable_rewards_at + | SubspaceCall_enable_solution_range_adjustment + | SubspaceCall_report_equivocation + | SubspaceCall_store_segment_headers + | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: bigint | undefined + votingSolutionRangeOverride?: bigint | undefined } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3914,553 +4136,596 @@ export type RecordCommitment = Bytes export type HistorySize = bigint export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = + | EnableRewardsAt_Height + | EnableRewardsAt_Manually + | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) + __kind: 'Height' + value?: number | undefined } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = + | RuntimeConfigsCall_set_enable_balance_transfers + | RuntimeConfigsCall_set_enable_domains + | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage + | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response +export type MessengerCall = + | MessengerCall_close_channel + | MessengerCall_initiate_channel + | MessengerCall_relay_message + | MessengerCall_relay_message_response /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake +export type DomainsCall = + | DomainsCall_deregister_operator + | DomainsCall_force_staking_epoch_transition + | DomainsCall_instantiate_domain + | DomainsCall_nominate_operator + | DomainsCall_register_domain_runtime + | DomainsCall_register_operator + | DomainsCall_submit_bundle + | DomainsCall_submit_fraud_proof + | DomainsCall_switch_domain + | DomainsCall_unlock_funds + | DomainsCall_unlock_operator + | DomainsCall_update_domain_operator_allow_list + | DomainsCall_upgrade_domain_runtime + | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::switch_domain`]. */ export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts +export type BalancesCall = + | BalancesCall_force_set_balance + | BalancesCall_force_transfer + | BalancesCall_force_unreserve + | BalancesCall_transfer_all + | BalancesCall_transfer_allow_death + | BalancesCall_transfer_keep_alive + | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = + | Call_Balances + | Call_Domains + | Call_Messenger + | Call_RuntimeConfigs + | Call_Subspace + | Call_Sudo + | Call_System + | Call_Timestamp + | Call_Transporter + | Call_Utility + | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -4472,90 +4737,93 @@ export const RecordWitness = sts.bytes() export const RecordCommitment = sts.bytes() export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const DomainId = sts.number() export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Public = sts.bytes() export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const H256 = sts.bytes() @@ -4563,80 +4831,80 @@ export const H256 = sts.bytes() export const AccountId32 = sts.bytes() export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) diff --git a/indexers/consensus-squid/src/types/v1.ts b/indexers/consensus-squid/src/types/v1.ts index c090e8b5b..dc0bd5b4f 100644 --- a/indexers/consensus-squid/src/types/v1.ts +++ b/indexers/consensus-squid/src/types/v1.ts @@ -1,199 +1,204 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const PalletId = sts.bytes() export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -201,239 +206,245 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: WithdrawalInShares | undefined } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() @@ -441,197 +452,222 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking + | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -639,234 +675,265 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -879,199 +946,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1083,45 +1166,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1139,18 +1222,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1164,122 +1247,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1287,150 +1378,174 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_StorageFeeDeposited + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle +export type SlashedReason = + | SlashedReason_BadExecutionReceipt + | SlashedReason_BundleEquivocation + | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export type Slot = bigint @@ -1438,39 +1553,60 @@ export type Slot = bigint export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1478,61 +1614,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1540,429 +1676,438 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -1975,803 +2120,828 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const Slot = sts.bigint() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw +export type MultiAddress = + | MultiAddress_Address20 + | MultiAddress_Address32 + | MultiAddress_Id + | MultiAddress_Index + | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_InvalidTransfers + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return { - } + return {} }) export type Void = never @@ -2779,196 +2949,206 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer +export type VestingCall = + | VestingCall_claim + | VestingCall_claim_for + | VestingCall_update_vesting_schedules + | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight +export type UtilityCall = + | UtilityCall_as_derivative + | UtilityCall_batch + | UtilityCall_batch_all + | UtilityCall_dispatch_as + | UtilityCall_force_batch + | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -2980,20 +3160,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3005,275 +3185,291 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage +export type SystemCall = + | SystemCall_apply_authorized_upgrade + | SystemCall_authorize_upgrade + | SystemCall_authorize_upgrade_without_checks + | SystemCall_kill_prefix + | SystemCall_kill_storage + | SystemCall_remark + | SystemCall_remark_with_event + | SystemCall_set_code + | SystemCall_set_code_without_checks + | SystemCall_set_heap_pages + | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight +export type SudoCall = + | SudoCall_remove_key + | SudoCall_set_key + | SudoCall_sudo + | SudoCall_sudo_as + | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3281,13 +3477,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -3299,16 +3495,16 @@ export const PieceOffset = sts.number() export const HistorySize = sts.bigint() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3326,772 +3522,831 @@ export type HistorySize = bigint export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal +export type DigestItem = + | DigestItem_Consensus + | DigestItem_Other + | DigestItem_PreRuntime + | DigestItem_RuntimeEnvironmentUpdated + | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = + | EnableRewardsAt_Height + | EnableRewardsAt_Manually + | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) + __kind: 'Height' + value?: number | undefined } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote +export type SubspaceCall = + | SubspaceCall_enable_authoring_by_anyone + | SubspaceCall_enable_rewards_at + | SubspaceCall_enable_solution_range_adjustment + | SubspaceCall_report_equivocation + | SubspaceCall_store_segment_headers + | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: bigint | undefined + votingSolutionRangeOverride?: bigint | undefined } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = + | RuntimeConfigsCall_set_enable_balance_transfers + | RuntimeConfigsCall_set_enable_domains + | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage + | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } }) export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = + | MessageWeightTag_EndpointRequest + | MessageWeightTag_EndpointResponse + | MessageWeightTag_None + | MessageWeightTag_ProtocolChannelClose + | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } }) export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + } }) export interface BlockInfo { - blockNumber: number - blockHash: H256 + blockNumber: number + blockHash: H256 } export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: [BlockInfo, StorageProof] | undefined + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export interface FeeModel { - relayFee: bigint + relayFee: bigint } export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response +export type MessengerCall = + | MessengerCall_close_channel + | MessengerCall_initiate_channel + | MessengerCall_relay_message + | MessengerCall_relay_message_response /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake +export type DomainsCall = + | DomainsCall_deregister_operator + | DomainsCall_force_staking_epoch_transition + | DomainsCall_instantiate_domain + | DomainsCall_nominate_operator + | DomainsCall_register_domain_runtime + | DomainsCall_register_operator + | DomainsCall_submit_bundle + | DomainsCall_submit_fraud_proof + | DomainsCall_switch_domain + | DomainsCall_unlock_funds + | DomainsCall_unlock_operator + | DomainsCall_update_domain_operator_allow_list + | DomainsCall_upgrade_domain_runtime + | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::switch_domain`]. */ export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts +export type BalancesCall = + | BalancesCall_force_set_balance + | BalancesCall_force_transfer + | BalancesCall_force_unreserve + | BalancesCall_transfer_all + | BalancesCall_transfer_allow_death + | BalancesCall_transfer_keep_alive + | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = + | Call_Balances + | Call_Domains + | Call_Messenger + | Call_RuntimeConfigs + | Call_Subspace + | Call_Sudo + | Call_System + | Call_Timestamp + | Call_Transporter + | Call_Utility + | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const AccountId32 = sts.bytes() diff --git a/indexers/consensus-squid/src/types/v3.ts b/indexers/consensus-squid/src/types/v3.ts index 7d6b8f87e..3b1c72656 100644 --- a/indexers/consensus-squid/src/types/v3.ts +++ b/indexers/consensus-squid/src/types/v3.ts @@ -1,128 +1,132 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] + allowChains: ChainId[] + removeChains: ChainId[] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: bigint | undefined + maxOutgoingMessages: number + fee: FeeModel + maybeOwner?: AccountId32 | undefined } export interface FeeModel { - relayFee: bigint + relayFee: bigint } export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open export interface ChannelState_Closed { - __kind: 'Closed' + __kind: 'Closed' } export interface ChannelState_Initiated { - __kind: 'Initiated' + __kind: 'Initiated' } export interface ChannelState_Open { - __kind: 'Open' + __kind: 'Open' } export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + maybeOwner: sts.option(() => AccountId32), + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export type DomainId = number export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_PendingSlash + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -130,36 +134,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) @@ -169,85 +173,88 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier + __kind: 'Messenger' + value: MessengerHoldIdentifier } export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] + __kind: 'Channel' + value: [ChainId, bigint] } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking + | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } }) export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export const AccountId32 = sts.bytes() @@ -257,178 +264,188 @@ export type Slot = bigint export const Slot = sts.bigint() export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = + | MultiAddress_Address20 + | MultiAddress_Address32 + | MultiAddress_Id + | MultiAddress_Index + | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } }) export const DomainId = sts.number() export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } + return { + Add: ChainId, + Remove: ChainId, + } }) export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId + __kind: 'Add' + value: ChainId } export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId + __kind: 'Remove' + value: ChainId } export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = + | MessageWeightTag_EndpointRequest + | MessageWeightTag_EndpointResponse + | MessageWeightTag_None + | MessageWeightTag_ProtocolChannelClose + | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } + return { + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Type_237, + } }) export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type H256 = Bytes @@ -438,9 +455,9 @@ export const EncodableOpaqueLeaf = sts.bytes() export const H256 = sts.bytes() export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Type_237 } export type EncodableOpaqueLeaf = Bytes @@ -448,72 +465,71 @@ export type EncodableOpaqueLeaf = Bytes export type Proof = Proof_Consensus | Proof_Domain export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof } export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return { - } + return {} }) export type Void = never @@ -521,238 +537,251 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer +export type VestingCall = + | VestingCall_claim + | VestingCall_claim_for + | VestingCall_update_vesting_schedules + | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight +export type UtilityCall = + | UtilityCall_as_derivative + | UtilityCall_batch + | UtilityCall_batch_all + | UtilityCall_dispatch_as + | UtilityCall_force_batch + | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -764,20 +793,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -789,277 +818,293 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage +export type SystemCall = + | SystemCall_apply_authorized_upgrade + | SystemCall_authorize_upgrade + | SystemCall_authorize_upgrade_without_checks + | SystemCall_kill_prefix + | SystemCall_kill_storage + | SystemCall_remark + | SystemCall_remark_with_event + | SystemCall_set_code + | SystemCall_set_code_without_checks + | SystemCall_set_heap_pages + | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight +export type SudoCall = + | SudoCall_remove_key + | SudoCall_set_key + | SudoCall_sudo + | SudoCall_sudo_as + | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -1067,13 +1112,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -1087,16 +1132,16 @@ export const HistorySize = sts.bigint() export const Public = sts.bytes() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -1116,63 +1161,63 @@ export type Public = Bytes export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export const SegmentCommitment = sts.bytes() @@ -1182,11 +1227,11 @@ export const SegmentIndex = sts.bigint() export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export type SegmentCommitment = Bytes @@ -1194,229 +1239,247 @@ export type SegmentCommitment = Bytes export type SegmentIndex = bigint export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type DigestItem = + | DigestItem_Consensus + | DigestItem_Other + | DigestItem_PreRuntime + | DigestItem_RuntimeEnvironmentUpdated + | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = + | EnableRewardsAt_Height + | EnableRewardsAt_Manually + | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) + __kind: 'Height' + value?: number | undefined } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote +export type SubspaceCall = + | SubspaceCall_enable_authoring_by_anyone + | SubspaceCall_enable_rewards_at + | SubspaceCall_enable_solution_range_adjustment + | SubspaceCall_report_equivocation + | SubspaceCall_store_segment_headers + | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: bigint | undefined + votingSolutionRangeOverride?: bigint | undefined } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = + | RuntimeConfigsCall_set_enable_balance_transfers + | RuntimeConfigsCall_set_enable_domains + | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage + | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } }) /** @@ -1428,1045 +1491,1107 @@ export type RewardsCall = RewardsCall_update_issuance_params * See [`Pallet::update_issuance_params`]. */ export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } }) export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist +export type MessengerCall = + | MessengerCall_close_channel + | MessengerCall_initiate_channel + | MessengerCall_initiate_domain_update_chain_allowlist + | MessengerCall_relay_message + | MessengerCall_relay_message_response + | MessengerCall_update_consensus_chain_allowlist + | MessengerCall_update_domain_allowlist /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::initiate_domain_update_chain_allowlist`]. */ export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * See [`Pallet::update_consensus_chain_allowlist`]. */ export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate } /** * See [`Pallet::update_domain_allowlist`]. */ export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_InvalidTransfers + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake +export type DomainsCall = + | DomainsCall_deregister_operator + | DomainsCall_force_staking_epoch_transition + | DomainsCall_instantiate_domain + | DomainsCall_nominate_operator + | DomainsCall_register_domain_runtime + | DomainsCall_register_operator + | DomainsCall_submit_bundle + | DomainsCall_submit_fraud_proof + | DomainsCall_unlock_funds + | DomainsCall_unlock_operator + | DomainsCall_update_domain_operator_allow_list + | DomainsCall_upgrade_domain_runtime + | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts +export type BalancesCall = + | BalancesCall_force_set_balance + | BalancesCall_force_transfer + | BalancesCall_force_unreserve + | BalancesCall_transfer_all + | BalancesCall_transfer_allow_death + | BalancesCall_transfer_keep_alive + | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = + | Call_Balances + | Call_Domains + | Call_Messenger + | Call_Rewards + | Call_RuntimeConfigs + | Call_Subspace + | Call_Sudo + | Call_System + | Call_Timestamp + | Call_Transporter + | Call_Utility + | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall + __kind: 'Rewards' + value: RewardsCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } diff --git a/indexers/consensus-squid/src/types/v5.ts b/indexers/consensus-squid/src/types/v5.ts index bbfb77cef..500fdb520 100644 --- a/indexers/consensus-squid/src/types/v5.ts +++ b/indexers/consensus-squid/src/types/v5.ts @@ -1,98 +1,115 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const Perbill = sts.number() export interface MessageWeightTags { - outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] - inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] + outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] + inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] } -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = + | MessageWeightTag_EndpointRequest + | MessageWeightTag_EndpointResponse + | MessageWeightTag_None + | MessageWeightTag_ProtocolChannelClose + | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export const MessageWeightTags: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - } + return { + outbox: sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), + MessageWeightTag, + ]), + ), + inboxResponses: sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), + MessageWeightTag, + ]), + ), + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = + | PermissionedActionAllowedBy_Accounts + | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -100,144 +117,149 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidBundleWeight + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -245,143 +267,146 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -391,45 +416,47 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -437,134 +464,156 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -572,234 +621,265 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -812,199 +892,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1016,45 +1112,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1072,18 +1168,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1097,122 +1193,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1220,177 +1324,220 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_StorageFeeDeposited + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_TotalIssuanceForced + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1398,61 +1545,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1460,438 +1607,447 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * The `TotalIssuance` was forcefully changed. */ export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -1904,380 +2060,388 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw +export type MultiAddress = + | MultiAddress_Address20 + | MultiAddress_Address32 + | MultiAddress_Id + | MultiAddress_Index + | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Type_251, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Type_251, + weightTag: MessageWeightTag, + } }) export const Type_251: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export const EncodableOpaqueLeaf = sts.bytes() export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export type EncodableOpaqueLeaf = Bytes @@ -2285,65 +2449,67 @@ export type EncodableOpaqueLeaf = Bytes export type Type_251 = Type_251_Consensus | Type_251_Domain export interface Type_251_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof } export interface Type_251_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Type_251 - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Type_251 + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - } + return { + maxOutgoingMessages: sts.number(), + } }) export interface InitiateChannelParams { - maxOutgoingMessages: number + maxOutgoingMessages: number } export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( + () => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } -}) + }, +) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -2351,536 +2517,556 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = + sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } -}) + }) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = + sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } -}) + }) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) + blockDigest: BlockDigestProof + newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = + | InvalidBundlesProofData_Bundle + | InvalidBundlesProofData_BundleAndExecution + | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle +export type FraudProofVariant = + | FraudProofVariant_InvalidBlockFees + | FraudProofVariant_InvalidBundles + | FraudProofVariant_InvalidDomainBlockHash + | FraudProofVariant_InvalidExtrinsicsRoot + | FraudProofVariant_InvalidStateTransition + | FraudProofVariant_InvalidTransfers + | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: ConsensusChainMmrLeafProof | undefined + maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return { - } + return {} }) export type Void = never @@ -2888,147 +3074,157 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer +export type VestingCall = + | VestingCall_claim + | VestingCall_claim_for + | VestingCall_update_vesting_schedules + | VestingCall_vested_transfer export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight +export type UtilityCall = + | UtilityCall_as_derivative + | UtilityCall_batch + | UtilityCall_batch_all + | UtilityCall_dispatch_as + | UtilityCall_force_batch + | UtilityCall_with_weight /** * Send a call through an indexed pseudonym of the sender. - * + * * Filter from origin are passed along. The call will be dispatched with an origin which * use the same filter as the origin of this call. - * + * * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. * because you expect `proxy` to have been used prior in the call stack and you do not want * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` * in the Multisig pallet instead. - * + * * NOTE: Prior to version *12, this was called `as_limited_sub`. - * + * * The dispatch origin for this call must be _Signed_. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * Send a batch of dispatch calls. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. - * + * * This will return `Ok` in all circumstances. To determine the success of the batch, an * event is deposited. If a call failed and the batch was interrupted, then the * `BatchInterrupted` event is deposited, along with the number of successful calls made @@ -3036,100 +3232,100 @@ export interface UtilityCall_as_derivative { * event is deposited. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * Send a batch of dispatch calls and atomically execute them. * The whole transaction will rollback and fail if any of the calls failed. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * Dispatches a function call with a provided origin. - * + * * The dispatch origin for this call must be _Root_. - * + * * ## Complexity * - O(1). */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * Send a batch of dispatch calls. * Unlike `batch`, it allows errors and won't interrupt. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatch without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * Dispatch a function call with a specified weight. - * + * * This function does not check the weight of the call, and instead allows the * Root origin to specify the weight of the call. - * + * * The dispatch origin for this call must be _Root_. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -3142,20 +3338,20 @@ export type TransporterCall = TransporterCall_transfer * Funds are burned on src_chain first and are minted on dst_chain using Messenger. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3165,19 +3361,19 @@ export type TimestampCall = TimestampCall_set /** * Set the current time. - * + * * This call should be invoked exactly once per block. It will panic at the finalization * phase, if this call hasn't been invoked by that time. - * + * * The timestamp should be greater than the previous one by the amount specified by * [`Config::MinimumPeriod`]. - * + * * The dispatch origin for this call must be _None_. - * + * * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware * that changing the complexity of this call could result exhausting the resources in a * block to execute any other calls. - * + * * ## Complexity * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in @@ -3185,207 +3381,223 @@ export type TimestampCall = TimestampCall_set * - 1 event handler `on_timestamp_set`. Must be `O(1)`. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage +export type SystemCall = + | SystemCall_apply_authorized_upgrade + | SystemCall_authorize_upgrade + | SystemCall_authorize_upgrade_without_checks + | SystemCall_kill_prefix + | SystemCall_kill_storage + | SystemCall_remark + | SystemCall_remark_with_event + | SystemCall_set_code + | SystemCall_set_code_without_checks + | SystemCall_set_heap_pages + | SystemCall_set_storage /** * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * + * * If the authorization required a version check, this call will ensure the spec name * remains unchanged and that the spec version has increased. - * + * * Depending on the runtime's `OnSetCode` configuration, this function may directly apply * the new `code` in the same block or attempt to schedule the upgrade. - * + * * All origins are allowed. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied * later. - * + * * This call requires Root origin. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied * later. - * + * * WARNING: This authorizes an upgrade that will take place without any safety checks, for * example that the spec name remains the same and that the version number increases. Not * recommended for normal use. Use `authorize_upgrade` instead. - * + * * This call requires Root origin. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * Kill all storage items with a key that starts with the given prefix. - * + * * **NOTE:** We rely on the Root origin to provide us the number of subkeys under * the prefix we are removing to accurately calculate the weight of this function. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * Kill some items from storage. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * Make some on-chain remark. - * + * * Can be executed by every `origin`. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * Make some on-chain remark and emit event. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * Set the new runtime code. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * Set the new runtime code without doing any checks of the given `code`. - * + * * Note that runtime upgrades will not run if this is called with a not-increasing spec * version! */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * Set the number of pages in the WebAssembly environment's heap. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * Set some items of storage. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight +export type SudoCall = + | SudoCall_remove_key + | SudoCall_set_key + | SudoCall_sudo + | SudoCall_sudo_as + | SudoCall_sudo_unchecked_weight /** * Permanently removes the sudo key. - * + * * **This cannot be un-done.** */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** @@ -3393,103 +3605,103 @@ export interface SudoCall_remove_key { * key. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * Authenticates the sudo key and dispatches a function call with `Root` origin. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * Authenticates the sudo key and dispatches a function call with `Signed` origin from * a given account. - * + * * The dispatch origin for this call must be _Signed_. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * Authenticates the sudo key and dispatches a function call with `Root` origin. * This function does not check the weight of the call, and instead allows the * Sudo user to specify the weight of the call. - * + * * The dispatch origin for this call must be _Signed_. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3497,13 +3709,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -3515,16 +3727,16 @@ export const PieceOffset = sts.number() export const HistorySize = sts.bigint() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3544,146 +3756,160 @@ export const Slot = sts.bigint() export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type Slot = bigint export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal +export type DigestItem = + | DigestItem_Consensus + | DigestItem_Other + | DigestItem_PreRuntime + | DigestItem_RuntimeEnvironmentUpdated + | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = + | EnableRewardsAt_Height + | EnableRewardsAt_Manually + | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) + __kind: 'Height' + value?: number | undefined } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote +export type SubspaceCall = + | SubspaceCall_enable_authoring_by_anyone + | SubspaceCall_enable_rewards_at + | SubspaceCall_enable_solution_range_adjustment + | SubspaceCall_report_equivocation + | SubspaceCall_store_segment_headers + | SubspaceCall_vote /** * Enable storage access for all users. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * Enable rewards for blocks and votes at specified block height. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** @@ -3691,22 +3917,22 @@ export interface SubspaceCall_enable_rewards_at { * Note: No effect on the solution range for the current era */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: bigint | undefined + votingSolutionRangeOverride?: bigint | undefined } /** * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. * If valid, the offence will be reported. - * + * * This extrinsic must be called unsigned and it is expected that only block authors will * call it (validated in `ValidateUnsigned`), as such if the block author is defined it * will be defined as the equivocation reporter. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** @@ -3714,97 +3940,101 @@ export interface SubspaceCall_report_equivocation { * the Subspace consensus logic. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * Farmer vote, currently only used for extra rewards to farmers. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = + | RuntimeConfigsCall_set_enable_balance_transfers + | RuntimeConfigsCall_set_enable_domains + | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage + | RuntimeConfigsCall_set_enable_non_root_calls /** * Enable or disable balance transfers for all users. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * Change enable domains state. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * Enable or disable dynamic cost of storage. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * Enable or disable calls from non-root users. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } }) export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } /** @@ -3816,87 +4046,94 @@ export type RewardsCall = RewardsCall_update_issuance_params * Update dynamic issuance parameters */ export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } }) export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } }) export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] + allowChains: ChainId[] + removeChains: ChainId[] } export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } + return { + Add: ChainId, + Remove: ChainId, + } }) export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId + __kind: 'Add' + value: ChainId } export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId + __kind: 'Remove' + value: ChainId } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist +export type MessengerCall = + | MessengerCall_close_channel + | MessengerCall_initiate_channel + | MessengerCall_initiate_domain_update_chain_allowlist + | MessengerCall_relay_message + | MessengerCall_relay_message_response + | MessengerCall_update_consensus_chain_allowlist + | MessengerCall_update_domain_allowlist /** * An open channel is closed with a foreign chain. * Channel is set to Closed and do not accept or receive any messages. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** @@ -3905,171 +4142,185 @@ export interface MessengerCall_close_channel { * Channel is set to initiated and do not accept or receive any messages. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * A call to initiate chain allowlist update on domains */ export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate } /** * Receives an Inbox message that needs to be validated and processed. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * Receives a response from the dst_chain for a message in Outbox. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * A call to update consensus chain allow list. */ export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate } /** * An inherent call to update allowlist for domain. */ export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - set_permissioned_action_allowed_by: sts.enumStruct({ - permissionedActionAllowedBy: PermissionedActionAllowedBy, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_nominator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + set_permissioned_action_allowed_by: sts.enumStruct({ + permissionedActionAllowedBy: PermissionedActionAllowedBy, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_nominator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake +export type DomainsCall = + | DomainsCall_deregister_operator + | DomainsCall_force_staking_epoch_transition + | DomainsCall_instantiate_domain + | DomainsCall_nominate_operator + | DomainsCall_register_domain_runtime + | DomainsCall_register_operator + | DomainsCall_set_permissioned_action_allowed_by + | DomainsCall_submit_bundle + | DomainsCall_submit_fraud_proof + | DomainsCall_unlock_funds + | DomainsCall_unlock_nominator + | DomainsCall_update_domain_operator_allow_list + | DomainsCall_upgrade_domain_runtime + | DomainsCall_withdraw_stake export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * Force staking epoch transition for a given domain */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig - signingKeyProofOfOwnership: Bytes + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig + signingKeyProofOfOwnership: Bytes } /** * Update permissioned action allowed by storage by Sudo. */ export interface DomainsCall_set_permissioned_action_allowed_by { - __kind: 'set_permissioned_action_allowed_by' - permissionedActionAllowedBy: PermissionedActionAllowedBy + __kind: 'set_permissioned_action_allowed_by' + permissionedActionAllowedBy: PermissionedActionAllowedBy } export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** @@ -4078,8 +4329,8 @@ export interface DomainsCall_submit_fraud_proof { * should call this extrinsic to unlock each withdrawal */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** @@ -4087,8 +4338,8 @@ export interface DomainsCall_unlock_funds { * A nominator can initiate their unlock given operator is already deregistered. */ export interface DomainsCall_unlock_nominator { - __kind: 'unlock_nominator' - operatorId: bigint + __kind: 'unlock_nominator' + operatorId: bigint } /** @@ -4101,90 +4352,98 @@ export interface DomainsCall_unlock_nominator { * will continue to operate until they de-register themselves. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_adjust_total_issuance: sts.enumStruct({ - direction: AdjustmentDirection, - delta: sts.bigint(), - }), - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_adjust_total_issuance: sts.enumStruct({ + direction: AdjustmentDirection, + delta: sts.bigint(), + }), + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts +export type BalancesCall = + | BalancesCall_force_adjust_total_issuance + | BalancesCall_force_set_balance + | BalancesCall_force_transfer + | BalancesCall_force_unreserve + | BalancesCall_transfer_all + | BalancesCall_transfer_allow_death + | BalancesCall_transfer_keep_alive + | BalancesCall_upgrade_accounts /** * Adjust the total issuance in a saturating way. - * + * * Can only be called by root and always needs a positive `delta`. - * + * * # Example */ export interface BalancesCall_force_adjust_total_issuance { - __kind: 'force_adjust_total_issuance' - direction: AdjustmentDirection - delta: bigint + __kind: 'force_adjust_total_issuance' + direction: AdjustmentDirection + delta: bigint } /** * Set the regular balance of a given account. - * + * * The dispatch origin for this call is `root`. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** @@ -4192,34 +4451,34 @@ export interface BalancesCall_force_set_balance { * may be specified. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * Unreserve some balance from a user by force. - * + * * Can only be called by ROOT. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * Transfer the entire transferable balance from the caller account. - * + * * NOTE: This function only attempts to transfer _transferable_ balances. This means that * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be * transferred by this function. To ensure that this function results in a killed account, * you might need to prepare the account by removing any reference counters, storage * deposits, etc... - * + * * The dispatch origin of this call must be Signed. - * + * * - `dest`: The recipient of the transfer. * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all * of the funds the account has, causing the sender account to be killed (false), or @@ -4227,144 +4486,156 @@ export interface BalancesCall_force_unreserve { * keep the sender account alive (true). */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * Transfer some liquid free balance to another account. - * + * * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. * If the sender's account is below the existential deposit as a result * of the transfer, the account will be reaped. - * + * * The dispatch origin for this call must be `Signed` by the transactor. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not * kill the origin account. - * + * * 99% of the time you want [`transfer_allow_death`] instead. - * + * * [`transfer_allow_death`]: struct.Pallet.html#method.transfer */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * Upgrade a specified account. - * + * * - `origin`: Must be `Signed`. * - `who`: The account to be upgraded. - * + * * This will waive the transaction fee if at least all but 10% of the accounts needed to * be upgraded. (We let some not have to be upgraded just in order to allow for the * possibility of churn). */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] + __kind: 'upgrade_accounts' + who: AccountId32[] } export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' + __kind: 'Decrease' } export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting + __kind: 'Increase' +} + +export type Call = + | Call_Balances + | Call_Domains + | Call_Messenger + | Call_Rewards + | Call_RuntimeConfigs + | Call_Subspace + | Call_Sudo + | Call_System + | Call_Timestamp + | Call_Transporter + | Call_Utility + | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall + __kind: 'Rewards' + value: RewardsCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/consensus-squid/src/types/vesting/calls.ts b/indexers/consensus-squid/src/types/vesting/calls.ts index 91b5a501a..858ebaa94 100644 --- a/indexers/consensus-squid/src/types/vesting/calls.ts +++ b/indexers/consensus-squid/src/types/vesting/calls.ts @@ -1,54 +1,51 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const claim = { - name: 'Vesting.claim', - /** - * See [`Pallet::claim`]. - */ - v0: new CallType( - 'Vesting.claim', - sts.unit() - ), +export const claim = { + name: 'Vesting.claim', + /** + * See [`Pallet::claim`]. + */ + v0: new CallType('Vesting.claim', sts.unit()), } -export const vestedTransfer = { - name: 'Vesting.vested_transfer', - /** - * See [`Pallet::vested_transfer`]. - */ - v0: new CallType( - 'Vesting.vested_transfer', - sts.struct({ - dest: v0.MultiAddress, - schedule: v0.VestingSchedule, - }) - ), +export const vestedTransfer = { + name: 'Vesting.vested_transfer', + /** + * See [`Pallet::vested_transfer`]. + */ + v0: new CallType( + 'Vesting.vested_transfer', + sts.struct({ + dest: v0.MultiAddress, + schedule: v0.VestingSchedule, + }), + ), } -export const updateVestingSchedules = { - name: 'Vesting.update_vesting_schedules', - /** - * See [`Pallet::update_vesting_schedules`]. - */ - v0: new CallType( - 'Vesting.update_vesting_schedules', - sts.struct({ - who: v0.MultiAddress, - vestingSchedules: sts.array(() => v0.VestingSchedule), - }) - ), +export const updateVestingSchedules = { + name: 'Vesting.update_vesting_schedules', + /** + * See [`Pallet::update_vesting_schedules`]. + */ + v0: new CallType( + 'Vesting.update_vesting_schedules', + sts.struct({ + who: v0.MultiAddress, + vestingSchedules: sts.array(() => v0.VestingSchedule), + }), + ), } -export const claimFor = { - name: 'Vesting.claim_for', - /** - * See [`Pallet::claim_for`]. - */ - v0: new CallType( - 'Vesting.claim_for', - sts.struct({ - dest: v0.MultiAddress, - }) - ), +export const claimFor = { + name: 'Vesting.claim_for', + /** + * See [`Pallet::claim_for`]. + */ + v0: new CallType( + 'Vesting.claim_for', + sts.struct({ + dest: v0.MultiAddress, + }), + ), } diff --git a/indexers/consensus-squid/src/types/vesting/constants.ts b/indexers/consensus-squid/src/types/vesting/constants.ts index 4c7cbb2b9..1db7a6c2d 100644 --- a/indexers/consensus-squid/src/types/vesting/constants.ts +++ b/indexers/consensus-squid/src/types/vesting/constants.ts @@ -1,11 +1,8 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const minVestedTransfer = { - /** - * The minimum amount transferred to call `vested_transfer`. - */ - v0: new ConstantType( - 'Vesting.MinVestedTransfer', - sts.bigint() - ), +export const minVestedTransfer = { + /** + * The minimum amount transferred to call `vested_transfer`. + */ + v0: new ConstantType('Vesting.MinVestedTransfer', sts.bigint()), } diff --git a/indexers/consensus-squid/src/types/vesting/events.ts b/indexers/consensus-squid/src/types/vesting/events.ts index 02d40ad04..230aa2bd3 100644 --- a/indexers/consensus-squid/src/types/vesting/events.ts +++ b/indexers/consensus-squid/src/types/vesting/events.ts @@ -1,44 +1,44 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const vestingScheduleAdded = { - name: 'Vesting.VestingScheduleAdded', - /** - * Added new vesting schedule. - */ - v0: new EventType( - 'Vesting.VestingScheduleAdded', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - vestingSchedule: v0.VestingSchedule, - }) - ), +export const vestingScheduleAdded = { + name: 'Vesting.VestingScheduleAdded', + /** + * Added new vesting schedule. + */ + v0: new EventType( + 'Vesting.VestingScheduleAdded', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + vestingSchedule: v0.VestingSchedule, + }), + ), } -export const claimed = { - name: 'Vesting.Claimed', - /** - * Claimed vesting. - */ - v0: new EventType( - 'Vesting.Claimed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const claimed = { + name: 'Vesting.Claimed', + /** + * Claimed vesting. + */ + v0: new EventType( + 'Vesting.Claimed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const vestingSchedulesUpdated = { - name: 'Vesting.VestingSchedulesUpdated', - /** - * Updated vesting schedules. - */ - v0: new EventType( - 'Vesting.VestingSchedulesUpdated', - sts.struct({ - who: v0.AccountId32, - }) - ), +export const vestingSchedulesUpdated = { + name: 'Vesting.VestingSchedulesUpdated', + /** + * Updated vesting schedules. + */ + v0: new EventType( + 'Vesting.VestingSchedulesUpdated', + sts.struct({ + who: v0.AccountId32, + }), + ), } diff --git a/indexers/consensus-squid/src/types/vesting/storage.ts b/indexers/consensus-squid/src/types/vesting/storage.ts index 847b2f926..44755a8ae 100644 --- a/indexers/consensus-squid/src/types/vesting/storage.ts +++ b/indexers/consensus-squid/src/types/vesting/storage.ts @@ -1,31 +1,46 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const vestingSchedules = { - /** - * Vesting schedules of an account. - * - * VestingSchedules: map AccountId => Vec - */ - v0: new StorageType('Vesting.VestingSchedules', 'Default', [v0.AccountId32], sts.array(() => v0.VestingSchedule)) as VestingSchedulesV0, +export const vestingSchedules = { + /** + * Vesting schedules of an account. + * + * VestingSchedules: map AccountId => Vec + */ + v0: new StorageType( + 'Vesting.VestingSchedules', + 'Default', + [v0.AccountId32], + sts.array(() => v0.VestingSchedule), + ) as VestingSchedulesV0, } /** * Vesting schedules of an account. - * + * * VestingSchedules: map AccountId => Vec */ -export interface VestingSchedulesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.VestingSchedule[] - get(block: Block, key: v0.AccountId32): Promise<(v0.VestingSchedule[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> +export interface VestingSchedulesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.VestingSchedule[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> } diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts index 5c1db7c20..e67ed7027 100644 --- a/indexers/consensus-squid/src/utils/cache.ts +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -1,5 +1,5 @@ -import { Store } from "@subsquid/typeorm-store"; -import { Entity } from "@subsquid/typeorm-store/src/store"; +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' import { Account, Block, @@ -9,35 +9,35 @@ import { Extrinsic, ExtrinsicModuleName, Log, -} from "../model"; -import type { Ctx } from "../processor"; +} from '../model' +import type { Ctx } from '../processor' export type PermanentCache = { - extrinsicModuleNames: Map; - eventModuleNames: Map; + extrinsicModuleNames: Map + eventModuleNames: Map - accounts: Map; -}; + accounts: Map +} export type TemporaryCache = { - blocks: Map; - extrinsics: Map; - events: Map; - calls: Map; - logs: Map; -}; + blocks: Map + extrinsics: Map + events: Map + calls: Map + logs: Map +} type CacheManager = { - isModified: boolean; -}; + isModified: boolean +} -export type Cache = PermanentCache & TemporaryCache & CacheManager; +export type Cache = PermanentCache & TemporaryCache & CacheManager export const initPermanentCache: PermanentCache = { extrinsicModuleNames: new Map(), eventModuleNames: new Map(), accounts: new Map(), -}; +} export const initTemporaryCache: TemporaryCache = { blocks: new Map(), @@ -45,87 +45,81 @@ export const initTemporaryCache: TemporaryCache = { events: new Map(), calls: new Map(), logs: new Map(), -}; +} export const initCacheManager: CacheManager = { isModified: false, -}; +} export const initCache: Cache = { ...initPermanentCache, ...initTemporaryCache, ...initCacheManager, -}; +} export const load = async (ctx: Ctx): Promise => { const [extrinsicModuleNames, eventModuleNames, accounts] = await Promise.all([ ctx.store.find(ExtrinsicModuleName), ctx.store.find(EventModuleName), ctx.store.find(Account), - ]); + ]) console.log( - "\x1b[32mLoaded in cache:\x1b[0m", - extrinsicModuleNames.length + " extrinsicModuleNames, ", - eventModuleNames.length + " eventModuleNames, ", - accounts.length + " accounts" - ); + '\x1b[32mLoaded in cache:\x1b[0m', + extrinsicModuleNames.length + ' extrinsicModuleNames, ', + eventModuleNames.length + ' eventModuleNames, ', + accounts.length + ' accounts', + ) return { ...initCache, extrinsicModuleNames: new Map(extrinsicModuleNames.map((e) => [e.id, e])), eventModuleNames: new Map(eventModuleNames.map((e) => [e.id, e])), accounts: new Map(accounts.map((a) => [a.id, a])), - }; -}; - -const saveEntry = async ( - ctx: Ctx, - cache: Cache, - name: keyof Cache -) => { + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { try { - const entity = cache[name] as unknown as Map; - if (entity.size === 0) return; + const entity = cache[name] as unknown as Map + if (entity.size === 0) return - await ctx.store.save(Array.from(entity.values())); + await ctx.store.save(Array.from(entity.values())) } catch (e) { - console.error(`Failed to save ${name} with error:`, e); + console.error(`Failed to save ${name} with error:`, e) } -}; +} const logEntry = (name: string, entry: Map) => - entry.size > 0 ? entry.size + " " + name + ", " : ""; + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving - if (!cache.isModified) return; + if (!cache.isModified) return - let logPerm = logEntry("eventModuleNames", cache.eventModuleNames); - logPerm += logEntry("extrinsicModuleNames", cache.extrinsicModuleNames); - logPerm += logEntry("accounts", cache.accounts); + let logPerm = logEntry('eventModuleNames', cache.eventModuleNames) + logPerm += logEntry('extrinsicModuleNames', cache.extrinsicModuleNames) + logPerm += logEntry('accounts', cache.accounts) - let logTemp = logEntry("blocks", cache.blocks); - logTemp += logEntry("extrinsics", cache.extrinsics); - logTemp += logEntry("events", cache.events); - logTemp += logEntry("calls", cache.calls); - logTemp += logEntry("logs", cache.logs); + let logTemp = logEntry('blocks', cache.blocks) + logTemp += logEntry('extrinsics', cache.extrinsics) + logTemp += logEntry('events', cache.events) + logTemp += logEntry('calls', cache.calls) + logTemp += logEntry('logs', cache.logs) - console.log("\x1b[34mSaving in database:\x1b[0m", logPerm); - console.log(" and ", logTemp, "\n"); + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') await Promise.all( Object.keys(cache).map((k) => - !Object.keys(initCacheManager).includes(k) - ? saveEntry(ctx, cache, k as keyof Cache) - : null - ) - ); + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) // Clear the cache for entries not needed for reference - cache.blocks.clear(); - cache.extrinsics.clear(); - cache.events.clear(); - cache.calls.clear(); - cache.logs.clear(); -}; + cache.blocks.clear() + cache.extrinsics.clear() + cache.events.clear() + cache.calls.clear() + cache.logs.clear() +} diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts index d2a6a4c32..d614df4b9 100644 --- a/indexers/consensus-squid/src/utils/index.ts +++ b/indexers/consensus-squid/src/utils/index.ts @@ -1,61 +1,58 @@ -import { DEFAULT_SS58_FORMAT } from "@autonomys/auto-utils"; -import { codec } from "@subsquid/ss58"; -import type { Store } from "@subsquid/typeorm-store"; -import { decodeHex } from "@subsquid/util-internal-hex"; -import type { CtxBlock, ProcessorContext } from "../processor"; +import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { codec } from '@subsquid/ss58' +import type { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' export const hexToAccount = (hex: string): string => { try { - return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)); + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) } catch (error) { - console.error("Failed to convert hex to account:", error); - return ""; + console.error('Failed to convert hex to account:', error) + return '' } -}; +} export const getCallSigner = ( - call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], ): string => { try { - return hexToAccount((call as any).origin.value.value); + return hexToAccount((call as any).origin.value.value) } catch (error) { - console.error("Failed to get call signer:", error); - return ""; + console.error('Failed to get call signer:', error) + return '' } -}; +} export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - arr ? [...arr, item] : [item]; + arr ? [...arr, item] : [item] -export const getBlockNumber = (block: CtxBlock): number => block.header.height; +export const getBlockNumber = (block: CtxBlock): number => block.header.height -export const getTimestamp = (block: CtxBlock): Date => - new Date(block.header.timestamp ?? 0); +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) -export const domainUID = (domainId: number): string => `${domainId}`; +export const domainUID = (domainId: number): string => `${domainId}` -export const operatorUID = (operatorId: number): string => `${operatorId}`; +export const operatorUID = (operatorId: number): string => `${operatorId}` export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}`; + `${operatorId}-${account}` export const bundleUID = ( domainId: number | string, domainBlockHeight: number | string, - domainBlockBundleIndex: number | string -): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}`; + domainBlockBundleIndex: number | string, +): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}` -export const blockUID = ( - domainId: number | string, - blockNumber: number | string -): string => `${domainId}-${blockNumber}`; +export const blockUID = (domainId: number | string, blockNumber: number | string): string => + `${domainId}-${blockNumber}` export const logBlock = (blocks: CtxBlock[]): void => { - const from = getBlockNumber(blocks[0]); - const to = getBlockNumber(blocks[blocks.length - 1]); + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) return console.log( - "\x1b[33mProcessing " + blocks.length + " blocks\x1b[0m", - "From " + from, - "to " + to + " (" + (to - from) + " blocks)" - ); -}; + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) +} diff --git a/indexers/leaderboard-squid/.prettierrc b/indexers/leaderboard-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/leaderboard-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/leaderboard-squid/package.json b/indexers/leaderboard-squid/package.json index 6a749c39d..caae3ea38 100644 --- a/indexers/leaderboard-squid/package.json +++ b/indexers/leaderboard-squid/package.json @@ -22,7 +22,8 @@ "migration": "sqd migration:generate", "build": "rm -rf lib && tsc", "process": "sqd process", - "deploy": "sqd deploy --org autonomys-labs ." + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", diff --git a/indexers/leaderboard-squid/src/blocks/index.ts b/indexers/leaderboard-squid/src/blocks/index.ts index fa8db3afe..2e3fe6484 100644 --- a/indexers/leaderboard-squid/src/blocks/index.ts +++ b/indexers/leaderboard-squid/src/blocks/index.ts @@ -1,20 +1,20 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { Store } from "@subsquid/typeorm-store"; -import { processEvents } from "../events"; -import type { Ctx, CtxBlock } from "../processor"; -import { logBlock } from "../utils"; -import { Cache, load, save } from "../utils/cache"; -import { sort } from "../utils/sort"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processEvents } from '../events' +import type { Ctx, CtxBlock } from '../processor' +import { logBlock } from '../utils' +import { Cache, load, save } from '../utils/cache' +import { sort } from '../utils/sort' export async function processBlocks(ctx: Ctx, api: ApiPromise) { - let cache: Cache = await load(ctx); - logBlock(ctx.blocks); + let cache: Cache = await load(ctx) + logBlock(ctx.blocks) for (let block of ctx.blocks) { - cache = await processBlock(cache, api, block); + cache = await processBlock(cache, api, block) } - await save(ctx, sort(cache)); + await save(ctx, sort(cache)) } async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processEvents(cache, api, block, block.events); + return await processEvents(cache, api, block, block.events) } diff --git a/indexers/leaderboard-squid/src/events/account.ts b/indexers/leaderboard-squid/src/events/account.ts index c65ff8ee7..73b1dd8ea 100644 --- a/indexers/leaderboard-squid/src/events/account.ts +++ b/indexers/leaderboard-squid/src/events/account.ts @@ -1,108 +1,103 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateAccountRemarkCount, getOrCreateAccountTransferReceiverTotalCount, getOrCreateAccountTransferReceiverTotalValue, getOrCreateAccountTransferSenderTotalCount, getOrCreateAccountTransferSenderTotalValue, -} from "../storage/account"; -import { - getBlockNumber, - getExtrinsicSigner, - getTimestamp, - hexToAccount, -} from "../utils"; -import { Cache } from "../utils/cache"; - -export function processTransferEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const from = hexToAccount(event.args.from); - const to = hexToAccount(event.args.to); - const amount = BigInt(event.args.amount); - - const accountTransferSenderTotalCount = - getOrCreateAccountTransferSenderTotalCount(cache, block, from); - - accountTransferSenderTotalCount.value++; - accountTransferSenderTotalCount.lastContributionAt = getTimestamp(block); - accountTransferSenderTotalCount.updatedAt = getBlockNumber(block); +} from '../storage/account' +import { getBlockNumber, getExtrinsicSigner, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' + +export function processTransferEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const from = hexToAccount(event.args.from) + const to = hexToAccount(event.args.to) + const amount = BigInt(event.args.amount) + + const accountTransferSenderTotalCount = getOrCreateAccountTransferSenderTotalCount( + cache, + block, + from, + ) + + accountTransferSenderTotalCount.value++ + accountTransferSenderTotalCount.lastContributionAt = getTimestamp(block) + accountTransferSenderTotalCount.updatedAt = getBlockNumber(block) cache.accountTransferSenderTotalCount.set( accountTransferSenderTotalCount.id, - accountTransferSenderTotalCount - ); + accountTransferSenderTotalCount, + ) - const accountTransferSenderTotalValue = - getOrCreateAccountTransferSenderTotalValue(cache, block, from); + const accountTransferSenderTotalValue = getOrCreateAccountTransferSenderTotalValue( + cache, + block, + from, + ) - accountTransferSenderTotalValue.value += amount; - accountTransferSenderTotalValue.lastContributionAt = getTimestamp(block); - accountTransferSenderTotalValue.updatedAt = getBlockNumber(block); + accountTransferSenderTotalValue.value += amount + accountTransferSenderTotalValue.lastContributionAt = getTimestamp(block) + accountTransferSenderTotalValue.updatedAt = getBlockNumber(block) cache.accountTransferSenderTotalValue.set( accountTransferSenderTotalValue.id, - accountTransferSenderTotalValue - ); + accountTransferSenderTotalValue, + ) - const accountTransferReceiverTotalCount = - getOrCreateAccountTransferReceiverTotalCount(cache, block, to); + const accountTransferReceiverTotalCount = getOrCreateAccountTransferReceiverTotalCount( + cache, + block, + to, + ) - accountTransferReceiverTotalCount.value++; - accountTransferReceiverTotalCount.lastContributionAt = getTimestamp(block); - accountTransferReceiverTotalCount.updatedAt = getBlockNumber(block); + accountTransferReceiverTotalCount.value++ + accountTransferReceiverTotalCount.lastContributionAt = getTimestamp(block) + accountTransferReceiverTotalCount.updatedAt = getBlockNumber(block) cache.accountTransferReceiverTotalCount.set( accountTransferReceiverTotalCount.id, - accountTransferReceiverTotalCount - ); + accountTransferReceiverTotalCount, + ) - const accountTransferReceiverTotalValue = - getOrCreateAccountTransferReceiverTotalValue(cache, block, to); + const accountTransferReceiverTotalValue = getOrCreateAccountTransferReceiverTotalValue( + cache, + block, + to, + ) - accountTransferReceiverTotalValue.value += amount; - accountTransferReceiverTotalValue.lastContributionAt = getTimestamp(block); - accountTransferReceiverTotalValue.updatedAt = getBlockNumber(block); + accountTransferReceiverTotalValue.value += amount + accountTransferReceiverTotalValue.lastContributionAt = getTimestamp(block) + accountTransferReceiverTotalValue.updatedAt = getBlockNumber(block) cache.accountTransferReceiverTotalValue.set( accountTransferReceiverTotalValue.id, - accountTransferReceiverTotalValue - ); + accountTransferReceiverTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processRemarkEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +export function processRemarkEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - console.log("accountId", accountId); + const accountId = getExtrinsicSigner(extrinsic) + console.log('accountId', accountId) - const accountRemarkCount = getOrCreateAccountRemarkCount( - cache, - block, - accountId - ); + const accountRemarkCount = getOrCreateAccountRemarkCount(cache, block, accountId) - accountRemarkCount.value++; - accountRemarkCount.lastContributionAt = getTimestamp(block); - accountRemarkCount.updatedAt = getBlockNumber(block); + accountRemarkCount.value++ + accountRemarkCount.lastContributionAt = getTimestamp(block) + accountRemarkCount.updatedAt = getBlockNumber(block) - cache.accountRemarkCount.set(accountRemarkCount.id, accountRemarkCount); + cache.accountRemarkCount.set(accountRemarkCount.id, accountRemarkCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/extrinsic.ts b/indexers/leaderboard-squid/src/events/extrinsic.ts index c0c69d9a0..278124589 100644 --- a/indexers/leaderboard-squid/src/events/extrinsic.ts +++ b/indexers/leaderboard-squid/src/events/extrinsic.ts @@ -1,96 +1,80 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateAccountExtrinsicFailedTotalCount, getOrCreateAccountExtrinsicSuccessTotalCount, getOrCreateAccountExtrinsicTotalCount, -} from "../storage/account"; -import { getBlockNumber, getExtrinsicSigner, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; - -export function processExtrinsicSuccessEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +} from '../storage/account' +import { getBlockNumber, getExtrinsicSigner, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export function processExtrinsicSuccessEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount( - cache, - block, - accountId - ); + const accountId = getExtrinsicSigner(extrinsic) + const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount(cache, block, accountId) - accountExtrinsicTotalCount.value++; - accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicTotalCount.value++ + accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicTotalCount.updatedAt = getBlockNumber(block) - cache.accountExtrinsicTotalCount.set( - accountExtrinsicTotalCount.id, - accountExtrinsicTotalCount - ); + cache.accountExtrinsicTotalCount.set(accountExtrinsicTotalCount.id, accountExtrinsicTotalCount) - const accountExtrinsicSuccessTotalCount = - getOrCreateAccountExtrinsicSuccessTotalCount(cache, block, accountId); + const accountExtrinsicSuccessTotalCount = getOrCreateAccountExtrinsicSuccessTotalCount( + cache, + block, + accountId, + ) - accountExtrinsicSuccessTotalCount.value++; - accountExtrinsicSuccessTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicSuccessTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicSuccessTotalCount.value++ + accountExtrinsicSuccessTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicSuccessTotalCount.updatedAt = getBlockNumber(block) cache.accountExtrinsicSuccessTotalCount.set( accountExtrinsicSuccessTotalCount.id, - accountExtrinsicSuccessTotalCount - ); + accountExtrinsicSuccessTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processExtrinsicFailedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const extrinsicIndex = event.extrinsicIndex ?? 0; - const extrinsic = block.extrinsics[extrinsicIndex]; +export function processExtrinsicFailedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const extrinsicIndex = event.extrinsicIndex ?? 0 + const extrinsic = block.extrinsics[extrinsicIndex] // exit if extrinsic has no signature - if (!extrinsic.signature) return cache; + if (!extrinsic.signature) return cache - const accountId = getExtrinsicSigner(extrinsic); - const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount( - cache, - block, - accountId - ); + const accountId = getExtrinsicSigner(extrinsic) + const accountExtrinsicTotalCount = getOrCreateAccountExtrinsicTotalCount(cache, block, accountId) - accountExtrinsicTotalCount.value++; - accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicTotalCount.value++ + accountExtrinsicTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicTotalCount.updatedAt = getBlockNumber(block) - cache.accountExtrinsicTotalCount.set( - accountExtrinsicTotalCount.id, - accountExtrinsicTotalCount - ); + cache.accountExtrinsicTotalCount.set(accountExtrinsicTotalCount.id, accountExtrinsicTotalCount) - const accountExtrinsicFailedTotalCount = - getOrCreateAccountExtrinsicFailedTotalCount(cache, block, accountId); + const accountExtrinsicFailedTotalCount = getOrCreateAccountExtrinsicFailedTotalCount( + cache, + block, + accountId, + ) - accountExtrinsicFailedTotalCount.value++; - accountExtrinsicFailedTotalCount.lastContributionAt = getTimestamp(block); - accountExtrinsicFailedTotalCount.updatedAt = getBlockNumber(block); + accountExtrinsicFailedTotalCount.value++ + accountExtrinsicFailedTotalCount.lastContributionAt = getTimestamp(block) + accountExtrinsicFailedTotalCount.updatedAt = getBlockNumber(block) cache.accountExtrinsicFailedTotalCount.set( accountExtrinsicFailedTotalCount.id, - accountExtrinsicFailedTotalCount - ); + accountExtrinsicFailedTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/farmer.ts b/indexers/leaderboard-squid/src/events/farmer.ts index 94d78ace4..5e9cc0e69 100644 --- a/indexers/leaderboard-squid/src/events/farmer.ts +++ b/indexers/leaderboard-squid/src/events/farmer.ts @@ -1,4 +1,4 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateFarmerBlockTotalCount, getOrCreateFarmerBlockTotalValue, @@ -6,146 +6,116 @@ import { getOrCreateFarmerVoteAndBlockTotalValue, getOrCreateFarmerVoteTotalCount, getOrCreateFarmerVoteTotalValue, -} from "../storage/farmer"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; - -export function processFarmerVoteRewardEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.voter); - const reward = BigInt(event.args.reward); - - const farmerVoteTotalCount = getOrCreateFarmerVoteTotalCount( - cache, - block, - accountId - ); +} from '../storage/farmer' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' - farmerVoteTotalCount.value++; - farmerVoteTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteTotalCount.updatedAt = getBlockNumber(block); +export function processFarmerVoteRewardEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.voter) + const reward = BigInt(event.args.reward) - cache.farmerVoteTotalCount.set(farmerVoteTotalCount.id, farmerVoteTotalCount); + const farmerVoteTotalCount = getOrCreateFarmerVoteTotalCount(cache, block, accountId) - const farmerVoteTotalValue = getOrCreateFarmerVoteTotalValue( - cache, - block, - accountId - ); + farmerVoteTotalCount.value++ + farmerVoteTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteTotalCount.updatedAt = getBlockNumber(block) + + cache.farmerVoteTotalCount.set(farmerVoteTotalCount.id, farmerVoteTotalCount) - farmerVoteTotalValue.value += reward; - farmerVoteTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteTotalValue.updatedAt = getBlockNumber(block); + const farmerVoteTotalValue = getOrCreateFarmerVoteTotalValue(cache, block, accountId) - cache.farmerVoteTotalValue.set(farmerVoteTotalValue.id, farmerVoteTotalValue); + farmerVoteTotalValue.value += reward + farmerVoteTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteTotalValue.updatedAt = getBlockNumber(block) + + cache.farmerVoteTotalValue.set(farmerVoteTotalValue.id, farmerVoteTotalValue) const farmerVoteAndBlockTotalCount = getOrCreateFarmerVoteAndBlockTotalCount( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalCount.value++; - farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalCount.value++ + farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalCount.set( farmerVoteAndBlockTotalCount.id, - farmerVoteAndBlockTotalCount - ); + farmerVoteAndBlockTotalCount, + ) const farmerVoteAndBlockTotalValue = getOrCreateFarmerVoteAndBlockTotalValue( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalValue.value += reward; - farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalValue.value += reward + farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalValue.set( farmerVoteAndBlockTotalValue.id, - farmerVoteAndBlockTotalValue - ); + farmerVoteAndBlockTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processFarmerBlockRewardEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.blockAuthor); - const reward = BigInt(event.args.reward); +export function processFarmerBlockRewardEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.blockAuthor) + const reward = BigInt(event.args.reward) - const farmerBlockTotalCount = getOrCreateFarmerBlockTotalCount( - cache, - block, - accountId - ); + const farmerBlockTotalCount = getOrCreateFarmerBlockTotalCount(cache, block, accountId) - farmerBlockTotalCount.value++; - farmerBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerBlockTotalCount.updatedAt = getBlockNumber(block); + farmerBlockTotalCount.value++ + farmerBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerBlockTotalCount.updatedAt = getBlockNumber(block) - cache.farmerBlockTotalCount.set( - farmerBlockTotalCount.id, - farmerBlockTotalCount - ); + cache.farmerBlockTotalCount.set(farmerBlockTotalCount.id, farmerBlockTotalCount) - const farmerBlockTotalValue = getOrCreateFarmerBlockTotalValue( - cache, - block, - accountId - ); + const farmerBlockTotalValue = getOrCreateFarmerBlockTotalValue(cache, block, accountId) - farmerBlockTotalValue.value += reward; - farmerBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerBlockTotalValue.updatedAt = getBlockNumber(block); + farmerBlockTotalValue.value += reward + farmerBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerBlockTotalValue.updatedAt = getBlockNumber(block) - cache.farmerBlockTotalValue.set( - farmerBlockTotalValue.id, - farmerBlockTotalValue - ); + cache.farmerBlockTotalValue.set(farmerBlockTotalValue.id, farmerBlockTotalValue) const farmerVoteAndBlockTotalCount = getOrCreateFarmerVoteAndBlockTotalCount( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalCount.value++; - farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalCount.value++ + farmerVoteAndBlockTotalCount.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalCount.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalCount.set( farmerVoteAndBlockTotalCount.id, - farmerVoteAndBlockTotalCount - ); + farmerVoteAndBlockTotalCount, + ) const farmerVoteAndBlockTotalValue = getOrCreateFarmerVoteAndBlockTotalValue( cache, block, - accountId - ); + accountId, + ) - farmerVoteAndBlockTotalValue.value += reward; - farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block); - farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block); + farmerVoteAndBlockTotalValue.value += reward + farmerVoteAndBlockTotalValue.lastContributionAt = getTimestamp(block) + farmerVoteAndBlockTotalValue.updatedAt = getBlockNumber(block) cache.farmerVoteAndBlockTotalValue.set( farmerVoteAndBlockTotalValue.id, - farmerVoteAndBlockTotalValue - ); + farmerVoteAndBlockTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/fee.ts b/indexers/leaderboard-squid/src/events/fee.ts index 839d367fc..72c97bd07 100644 --- a/indexers/leaderboard-squid/src/events/fee.ts +++ b/indexers/leaderboard-squid/src/events/fee.ts @@ -1,31 +1,30 @@ -import type { CtxBlock, CtxEvent } from "../processor"; -import { getOrCreateAccountTransactionFeePaidTotalValue } from "../storage/account"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; +import type { CtxBlock, CtxEvent } from '../processor' +import { getOrCreateAccountTransactionFeePaidTotalValue } from '../storage/account' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' -export function processTransactionFeePaidEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const accountId = hexToAccount(event.args.who); - const actualFee = BigInt(event.args.actualFee); - const tip = BigInt(event.args.tip); - const totalFeePaid = actualFee + tip; +export function processTransactionFeePaidEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const accountId = hexToAccount(event.args.who) + const actualFee = BigInt(event.args.actualFee) + const tip = BigInt(event.args.tip) + const totalFeePaid = actualFee + tip - const accountTransactionFeePaidTotalValue = - getOrCreateAccountTransactionFeePaidTotalValue(cache, block, accountId); + const accountTransactionFeePaidTotalValue = getOrCreateAccountTransactionFeePaidTotalValue( + cache, + block, + accountId, + ) - accountTransactionFeePaidTotalValue.value += totalFeePaid; - accountTransactionFeePaidTotalValue.lastContributionAt = getTimestamp(block); - accountTransactionFeePaidTotalValue.updatedAt = getBlockNumber(block); + accountTransactionFeePaidTotalValue.value += totalFeePaid + accountTransactionFeePaidTotalValue.lastContributionAt = getTimestamp(block) + accountTransactionFeePaidTotalValue.updatedAt = getBlockNumber(block) cache.accountTransactionFeePaidTotalValue.set( accountTransactionFeePaidTotalValue.id, - accountTransactionFeePaidTotalValue - ); + accountTransactionFeePaidTotalValue, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/events/index.ts b/indexers/leaderboard-squid/src/events/index.ts index c793ed789..ef7ab39b3 100644 --- a/indexers/leaderboard-squid/src/events/index.ts +++ b/indexers/leaderboard-squid/src/events/index.ts @@ -1,17 +1,11 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import type { CtxBlock, CtxEvent } from "../processor"; -import { events } from "../types"; -import { Cache } from "../utils/cache"; -import { processRemarkEvent, processTransferEvent } from "./account"; -import { - processExtrinsicFailedEvent, - processExtrinsicSuccessEvent, -} from "./extrinsic"; // Import the new processing functions -import { - processFarmerBlockRewardEvent, - processFarmerVoteRewardEvent, -} from "./farmer"; -import { processTransactionFeePaidEvent } from "./fee"; +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent } from '../processor' +import { events } from '../types' +import { Cache } from '../utils/cache' +import { processRemarkEvent, processTransferEvent } from './account' +import { processExtrinsicFailedEvent, processExtrinsicSuccessEvent } from './extrinsic' // Import the new processing functions +import { processFarmerBlockRewardEvent, processFarmerVoteRewardEvent } from './farmer' +import { processTransactionFeePaidEvent } from './fee' import { processBundleStoredEvent, processOperatorNominatedEvent, @@ -19,58 +13,53 @@ import { processOperatorRewardedEvent, processOperatorTaxCollectedEvent, processWithdrewStakeEvent, -} from "./staking"; +} from './staking' export async function processEvents( cache: Cache, api: ApiPromise, block: CtxBlock, - events: CtxEvent[] + events: CtxEvent[], ) { for (let event of events) { - cache = await processEvent(cache, api, block, event); + cache = await processEvent(cache, api, block, event) } - return cache; + return cache } -async function processEvent( - cache: Cache, - api: ApiPromise, - block: CtxBlock, - event: CtxEvent -) { +async function processEvent(cache: Cache, api: ApiPromise, block: CtxBlock, event: CtxEvent) { switch (event.name) { // account events case events.balances.transfer.name: - return processTransferEvent(cache, block, event); + return processTransferEvent(cache, block, event) case events.system.remarked.name: - return processRemarkEvent(cache, block, event); + return processRemarkEvent(cache, block, event) case events.system.extrinsicSuccess.name: - return processExtrinsicSuccessEvent(cache, block, event); + return processExtrinsicSuccessEvent(cache, block, event) case events.system.extrinsicFailed.name: - return processExtrinsicFailedEvent(cache, block, event); + return processExtrinsicFailedEvent(cache, block, event) case events.transactionPayment.transactionFeePaid.name: - return processTransactionFeePaidEvent(cache, block, event); + return processTransactionFeePaidEvent(cache, block, event) // farmer events case events.rewards.voteReward.name: - return processFarmerVoteRewardEvent(cache, block, event); + return processFarmerVoteRewardEvent(cache, block, event) case events.rewards.blockReward.name: - return processFarmerBlockRewardEvent(cache, block, event); + return processFarmerBlockRewardEvent(cache, block, event) // operator & nominator events case events.domains.operatorRewarded.name: - return processOperatorRewardedEvent(cache, block, event); + return processOperatorRewardedEvent(cache, block, event) case events.domains.operatorTaxCollected.name: - return processOperatorTaxCollectedEvent(cache, block, event); + return processOperatorTaxCollectedEvent(cache, block, event) case events.domains.bundleStored.name: - return processBundleStoredEvent(cache, block, event); + return processBundleStoredEvent(cache, block, event) case events.domains.operatorRegistered.name: - return processOperatorRegisteredEvent(cache, block, event); + return processOperatorRegisteredEvent(cache, block, event) case events.domains.operatorNominated.name: - return processOperatorNominatedEvent(cache, block, event); + return processOperatorNominatedEvent(cache, block, event) case events.domains.withdrewStake.name: - return processWithdrewStakeEvent(cache, block, event); + return processWithdrewStakeEvent(cache, block, event) case events.domains.storageFeeDeposited.name: default: - return cache; + return cache } } diff --git a/indexers/leaderboard-squid/src/events/staking.ts b/indexers/leaderboard-squid/src/events/staking.ts index 816393caf..869fcfd11 100644 --- a/indexers/leaderboard-squid/src/events/staking.ts +++ b/indexers/leaderboard-squid/src/events/staking.ts @@ -1,9 +1,9 @@ -import type { CtxBlock, CtxEvent } from "../processor"; +import type { CtxBlock, CtxEvent } from '../processor' import { getOrCreateNominatorDepositsTotalCount, getOrCreateNominatorDepositsTotalValue, getOrCreateNominatorWithdrawalsTotalCount, -} from "../storage/nominator"; +} from '../storage/nominator' import { getOrCreateOperatorBundleTotalCount, getOrCreateOperatorDepositsTotalCount, @@ -11,226 +11,170 @@ import { getOrCreateOperatorTotalRewardsCollected, getOrCreateOperatorTotalTaxCollected, getOrCreateOperatorWithdrawalsTotalCount, -} from "../storage/operator"; -import { getBlockNumber, getTimestamp, hexToAccount } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage/operator' +import { getBlockNumber, getTimestamp, hexToAccount } from '../utils' +import { Cache } from '../utils/cache' -export function processOperatorRewardedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; +export function processOperatorRewardedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' - const reward = BigInt(event.args.reward); - if (reward === BigInt(0)) return cache; + const reward = BigInt(event.args.reward) + if (reward === BigInt(0)) return cache - const operatorTotalRewardsCollected = - getOrCreateOperatorTotalRewardsCollected(cache, block, operatorId); + const operatorTotalRewardsCollected = getOrCreateOperatorTotalRewardsCollected( + cache, + block, + operatorId, + ) - operatorTotalRewardsCollected.value += reward; - operatorTotalRewardsCollected.lastContributionAt = getTimestamp(block); - operatorTotalRewardsCollected.updatedAt = getBlockNumber(block); + operatorTotalRewardsCollected.value += reward + operatorTotalRewardsCollected.lastContributionAt = getTimestamp(block) + operatorTotalRewardsCollected.updatedAt = getBlockNumber(block) cache.operatorTotalRewardsCollected.set( operatorTotalRewardsCollected.id, - operatorTotalRewardsCollected - ); + operatorTotalRewardsCollected, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorTaxCollectedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const tax = BigInt(event.args.tax ?? 0); +export function processOperatorTaxCollectedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const tax = BigInt(event.args.tax ?? 0) - const operatorTotalTaxCollected = getOrCreateOperatorTotalTaxCollected( - cache, - block, - operatorId - ); + const operatorTotalTaxCollected = getOrCreateOperatorTotalTaxCollected(cache, block, operatorId) - operatorTotalTaxCollected.value += tax; - operatorTotalTaxCollected.lastContributionAt = getTimestamp(block); - operatorTotalTaxCollected.updatedAt = getBlockNumber(block); + operatorTotalTaxCollected.value += tax + operatorTotalTaxCollected.lastContributionAt = getTimestamp(block) + operatorTotalTaxCollected.updatedAt = getBlockNumber(block) - cache.operatorTotalTaxCollected.set( - operatorTotalTaxCollected.id, - operatorTotalTaxCollected - ); + cache.operatorTotalTaxCollected.set(operatorTotalTaxCollected.id, operatorTotalTaxCollected) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processBundleStoredEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.bundleAuthor) ?? "0"; +export function processBundleStoredEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.bundleAuthor) ?? '0' - const operatorBundleTotalCount = getOrCreateOperatorBundleTotalCount( - cache, - block, - operatorId - ); + const operatorBundleTotalCount = getOrCreateOperatorBundleTotalCount(cache, block, operatorId) - operatorBundleTotalCount.value++; - operatorBundleTotalCount.lastContributionAt = getTimestamp(block); - operatorBundleTotalCount.updatedAt = getBlockNumber(block); + operatorBundleTotalCount.value++ + operatorBundleTotalCount.lastContributionAt = getTimestamp(block) + operatorBundleTotalCount.updatedAt = getBlockNumber(block) - cache.operatorBundleTotalCount.set( - operatorBundleTotalCount.id, - operatorBundleTotalCount - ); + cache.operatorBundleTotalCount.set(operatorBundleTotalCount.id, operatorBundleTotalCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorRegisteredEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; +export function processOperatorRegisteredEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' - const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount( - cache, - block, - operatorId - ); + const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount(cache, block, operatorId) - operatorDepositsTotalCount.value++; - operatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - operatorDepositsTotalCount.updatedAt = getBlockNumber(block); + operatorDepositsTotalCount.value++ + operatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + operatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalCount.set( - operatorDepositsTotalCount.id, - operatorDepositsTotalCount - ); + cache.operatorDepositsTotalCount.set(operatorDepositsTotalCount.id, operatorDepositsTotalCount) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processOperatorNominatedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const accountId = hexToAccount(event.args.nominatorId); - const amount = BigInt(event.args.amount ?? 0); +export function processOperatorNominatedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const accountId = hexToAccount(event.args.nominatorId) + const amount = BigInt(event.args.amount ?? 0) - const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount( - cache, - block, - operatorId - ); + const operatorDepositsTotalCount = getOrCreateOperatorDepositsTotalCount(cache, block, operatorId) - operatorDepositsTotalCount.value++; - operatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - operatorDepositsTotalCount.updatedAt = getBlockNumber(block); + operatorDepositsTotalCount.value++ + operatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + operatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalCount.set( - operatorDepositsTotalCount.id, - operatorDepositsTotalCount - ); + cache.operatorDepositsTotalCount.set(operatorDepositsTotalCount.id, operatorDepositsTotalCount) - const operatorDepositsTotalValue = getOrCreateOperatorDepositsTotalValue( - cache, - block, - operatorId - ); + const operatorDepositsTotalValue = getOrCreateOperatorDepositsTotalValue(cache, block, operatorId) - operatorDepositsTotalValue.value += amount; - operatorDepositsTotalValue.lastContributionAt = getTimestamp(block); - operatorDepositsTotalValue.updatedAt = getBlockNumber(block); + operatorDepositsTotalValue.value += amount + operatorDepositsTotalValue.lastContributionAt = getTimestamp(block) + operatorDepositsTotalValue.updatedAt = getBlockNumber(block) - cache.operatorDepositsTotalValue.set( - operatorDepositsTotalValue.id, - operatorDepositsTotalValue - ); + cache.operatorDepositsTotalValue.set(operatorDepositsTotalValue.id, operatorDepositsTotalValue) const nominatorDepositsTotalCount = getOrCreateNominatorDepositsTotalCount( cache, block, - accountId - ); + accountId, + ) - nominatorDepositsTotalCount.value++; - nominatorDepositsTotalCount.lastContributionAt = getTimestamp(block); - nominatorDepositsTotalCount.updatedAt = getBlockNumber(block); + nominatorDepositsTotalCount.value++ + nominatorDepositsTotalCount.lastContributionAt = getTimestamp(block) + nominatorDepositsTotalCount.updatedAt = getBlockNumber(block) - cache.nominatorDepositsTotalCount.set( - nominatorDepositsTotalCount.id, - nominatorDepositsTotalCount - ); + cache.nominatorDepositsTotalCount.set(nominatorDepositsTotalCount.id, nominatorDepositsTotalCount) const nominatorDepositsTotalValue = getOrCreateNominatorDepositsTotalValue( cache, block, - accountId - ); + accountId, + ) - nominatorDepositsTotalValue.value += amount; - nominatorDepositsTotalValue.lastContributionAt = getTimestamp(block); - nominatorDepositsTotalValue.updatedAt = getBlockNumber(block); + nominatorDepositsTotalValue.value += amount + nominatorDepositsTotalValue.lastContributionAt = getTimestamp(block) + nominatorDepositsTotalValue.updatedAt = getBlockNumber(block) - cache.nominatorDepositsTotalValue.set( - nominatorDepositsTotalValue.id, - nominatorDepositsTotalValue - ); + cache.nominatorDepositsTotalValue.set(nominatorDepositsTotalValue.id, nominatorDepositsTotalValue) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processWithdrewStakeEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const operatorId = String(event.args.operatorId) ?? "0"; - const accountId = hexToAccount(event.args.nominatorId); +export function processWithdrewStakeEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const operatorId = String(event.args.operatorId) ?? '0' + const accountId = hexToAccount(event.args.nominatorId) - const operatorWithdrawalsTotalCount = - getOrCreateOperatorWithdrawalsTotalCount(cache, block, operatorId); + const operatorWithdrawalsTotalCount = getOrCreateOperatorWithdrawalsTotalCount( + cache, + block, + operatorId, + ) - operatorWithdrawalsTotalCount.value++; - operatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block); - operatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block); + operatorWithdrawalsTotalCount.value++ + operatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block) + operatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block) cache.operatorWithdrawalsTotalCount.set( operatorWithdrawalsTotalCount.id, - operatorWithdrawalsTotalCount - ); + operatorWithdrawalsTotalCount, + ) - const nominatorWithdrawalsTotalCount = - getOrCreateNominatorWithdrawalsTotalCount(cache, block, accountId); + const nominatorWithdrawalsTotalCount = getOrCreateNominatorWithdrawalsTotalCount( + cache, + block, + accountId, + ) - nominatorWithdrawalsTotalCount.value++; - nominatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block); - nominatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block); + nominatorWithdrawalsTotalCount.value++ + nominatorWithdrawalsTotalCount.lastContributionAt = getTimestamp(block) + nominatorWithdrawalsTotalCount.updatedAt = getBlockNumber(block) cache.nominatorWithdrawalsTotalCount.set( nominatorWithdrawalsTotalCount.id, - nominatorWithdrawalsTotalCount - ); + nominatorWithdrawalsTotalCount, + ) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/leaderboard-squid/src/main.ts b/indexers/leaderboard-squid/src/main.ts index ed2e4b246..9a9500b38 100644 --- a/indexers/leaderboard-squid/src/main.ts +++ b/indexers/leaderboard-squid/src/main.ts @@ -1,15 +1,15 @@ -import { createConnection } from "@autonomys/auto-utils"; -import { TypeormDatabase } from "@subsquid/typeorm-store"; -import { assertNotNull } from "@subsquid/util-internal"; -import { processBlocks } from "./blocks"; -import { processor } from "./processor"; +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( - assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC endpoint supplied") - ); + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), + ) - await processBlocks(ctx, api); + await processBlocks(ctx, api) - await api.disconnect(); -}); + await api.disconnect() +}) diff --git a/indexers/leaderboard-squid/src/model/index.ts b/indexers/leaderboard-squid/src/model/index.ts index 73bfb2881..99735f641 100644 --- a/indexers/leaderboard-squid/src/model/index.ts +++ b/indexers/leaderboard-squid/src/model/index.ts @@ -1 +1 @@ -export * from "./generated" +export * from './generated' diff --git a/indexers/leaderboard-squid/src/processor.ts b/indexers/leaderboard-squid/src/processor.ts index a60429ca4..4e2570b7c 100644 --- a/indexers/leaderboard-squid/src/processor.ts +++ b/indexers/leaderboard-squid/src/processor.ts @@ -6,19 +6,14 @@ import { Call as _Call, Event as _Event, Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; -import { calls, events } from "./types"; +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { calls, events } from './types' export const processor = new SubstrateBatchProcessor() - .setGateway( - assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") - ) + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) .setRpcEndpoint({ - url: assertNotNull( - process.env.RPC_CONSENSUS_HTTP, - "No RPC endpoint supplied" - ), + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source rateLimit: 10, }) @@ -77,15 +72,15 @@ export const processor = new SubstrateBatchProcessor() extrinsicIndex: true, callAddress: true, }, - }); + }) -export type Fields = SubstrateBatchProcessorFields; -export type Block = BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; -export type Ctx = ProcessorContext; -export type CtxBlock = Ctx["blocks"][0]; -export type CtxExtrinsic = CtxBlock["extrinsics"][0]; -export type CtxEvent = CtxExtrinsic["events"][0]; +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/leaderboard-squid/src/storage/account.ts b/indexers/leaderboard-squid/src/storage/account.ts index 4f4b9c60d..451ada653 100644 --- a/indexers/leaderboard-squid/src/storage/account.ts +++ b/indexers/leaderboard-squid/src/storage/account.ts @@ -8,15 +8,15 @@ import { AccountTransferReceiverTotalValue, AccountTransferSenderTotalCount, AccountTransferSenderTotalValue, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createAccountTransferSenderTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferSenderTotalCount => new AccountTransferSenderTotalCount({ id: accountId, @@ -26,27 +26,26 @@ export const createAccountTransferSenderTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferSenderTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferSenderTotalCount => { - const accountTransferSenderTotalCount = - cache.accountTransferSenderTotalCount.get(accountId); + const accountTransferSenderTotalCount = cache.accountTransferSenderTotalCount.get(accountId) if (!accountTransferSenderTotalCount) - return createAccountTransferSenderTotalCount(block, accountId, props); + return createAccountTransferSenderTotalCount(block, accountId, props) - return accountTransferSenderTotalCount; -}; + return accountTransferSenderTotalCount +} export const createAccountTransferSenderTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferSenderTotalValue => new AccountTransferSenderTotalValue({ id: accountId, @@ -56,27 +55,26 @@ export const createAccountTransferSenderTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferSenderTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferSenderTotalValue => { - const accountTransferSenderTotalValue = - cache.accountTransferSenderTotalValue.get(accountId); + const accountTransferSenderTotalValue = cache.accountTransferSenderTotalValue.get(accountId) if (!accountTransferSenderTotalValue) - return createAccountTransferSenderTotalValue(block, accountId, props); + return createAccountTransferSenderTotalValue(block, accountId, props) - return accountTransferSenderTotalValue; -}; + return accountTransferSenderTotalValue +} export const createAccountTransferReceiverTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferReceiverTotalCount => new AccountTransferReceiverTotalCount({ id: accountId, @@ -86,27 +84,26 @@ export const createAccountTransferReceiverTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferReceiverTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferReceiverTotalCount => { - const accountTransferReceiverTotalCount = - cache.accountTransferReceiverTotalCount.get(accountId); + const accountTransferReceiverTotalCount = cache.accountTransferReceiverTotalCount.get(accountId) if (!accountTransferReceiverTotalCount) - return createAccountTransferReceiverTotalCount(block, accountId, props); + return createAccountTransferReceiverTotalCount(block, accountId, props) - return accountTransferReceiverTotalCount; -}; + return accountTransferReceiverTotalCount +} export const createAccountTransferReceiverTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransferReceiverTotalValue => new AccountTransferReceiverTotalValue({ id: accountId, @@ -116,27 +113,26 @@ export const createAccountTransferReceiverTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransferReceiverTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransferReceiverTotalValue => { - const accountTransferReceiverTotalValue = - cache.accountTransferReceiverTotalValue.get(accountId); + const accountTransferReceiverTotalValue = cache.accountTransferReceiverTotalValue.get(accountId) if (!accountTransferReceiverTotalValue) - return createAccountTransferReceiverTotalValue(block, accountId, props); + return createAccountTransferReceiverTotalValue(block, accountId, props) - return accountTransferReceiverTotalValue; -}; + return accountTransferReceiverTotalValue +} export const createAccountRemarkCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountRemarkCount => new AccountRemarkCount({ id: accountId, @@ -146,26 +142,25 @@ export const createAccountRemarkCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountRemarkCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountRemarkCount => { - const accountRemarkCount = cache.accountRemarkCount.get(accountId); + const accountRemarkCount = cache.accountRemarkCount.get(accountId) - if (!accountRemarkCount) - return createAccountRemarkCount(block, accountId, props); + if (!accountRemarkCount) return createAccountRemarkCount(block, accountId, props) - return accountRemarkCount; -}; + return accountRemarkCount +} export const createAccountExtrinsicTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicTotalCount => new AccountExtrinsicTotalCount({ id: accountId, @@ -175,27 +170,25 @@ export const createAccountExtrinsicTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicTotalCount => { - const accountExtrinsicTotalCount = - cache.accountExtrinsicTotalCount.get(accountId); + const accountExtrinsicTotalCount = cache.accountExtrinsicTotalCount.get(accountId) - if (!accountExtrinsicTotalCount) - return createAccountExtrinsicTotalCount(block, accountId, props); + if (!accountExtrinsicTotalCount) return createAccountExtrinsicTotalCount(block, accountId, props) - return accountExtrinsicTotalCount; -}; + return accountExtrinsicTotalCount +} export const createAccountExtrinsicSuccessTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicSuccessTotalCount => new AccountExtrinsicSuccessTotalCount({ id: accountId, @@ -205,27 +198,26 @@ export const createAccountExtrinsicSuccessTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicSuccessTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicSuccessTotalCount => { - const accountExtrinsicSuccessTotalCount = - cache.accountExtrinsicSuccessTotalCount.get(accountId); + const accountExtrinsicSuccessTotalCount = cache.accountExtrinsicSuccessTotalCount.get(accountId) if (!accountExtrinsicSuccessTotalCount) - return createAccountExtrinsicSuccessTotalCount(block, accountId, props); + return createAccountExtrinsicSuccessTotalCount(block, accountId, props) - return accountExtrinsicSuccessTotalCount; -}; + return accountExtrinsicSuccessTotalCount +} export const createAccountExtrinsicFailedTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountExtrinsicFailedTotalCount => new AccountExtrinsicFailedTotalCount({ id: accountId, @@ -235,27 +227,26 @@ export const createAccountExtrinsicFailedTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountExtrinsicFailedTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountExtrinsicFailedTotalCount => { - const accountExtrinsicFailedTotalCount = - cache.accountExtrinsicFailedTotalCount.get(accountId); + const accountExtrinsicFailedTotalCount = cache.accountExtrinsicFailedTotalCount.get(accountId) if (!accountExtrinsicFailedTotalCount) - return createAccountExtrinsicFailedTotalCount(block, accountId, props); + return createAccountExtrinsicFailedTotalCount(block, accountId, props) - return accountExtrinsicFailedTotalCount; -}; + return accountExtrinsicFailedTotalCount +} export const createAccountTransactionFeePaidTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): AccountTransactionFeePaidTotalValue => new AccountTransactionFeePaidTotalValue({ id: accountId, @@ -265,19 +256,19 @@ export const createAccountTransactionFeePaidTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateAccountTransactionFeePaidTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): AccountTransactionFeePaidTotalValue => { const accountTransactionFeePaidTotalValue = - cache.accountTransactionFeePaidTotalValue.get(accountId); + cache.accountTransactionFeePaidTotalValue.get(accountId) if (!accountTransactionFeePaidTotalValue) - return createAccountTransactionFeePaidTotalValue(block, accountId, props); + return createAccountTransactionFeePaidTotalValue(block, accountId, props) - return accountTransactionFeePaidTotalValue; -}; + return accountTransactionFeePaidTotalValue +} diff --git a/indexers/leaderboard-squid/src/storage/farmer.ts b/indexers/leaderboard-squid/src/storage/farmer.ts index 048fcac21..223024a7a 100644 --- a/indexers/leaderboard-squid/src/storage/farmer.ts +++ b/indexers/leaderboard-squid/src/storage/farmer.ts @@ -5,15 +5,15 @@ import { FarmerVoteAndBlockTotalValue, FarmerVoteTotalCount, FarmerVoteTotalValue, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createFarmerVoteTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteTotalCount => new FarmerVoteTotalCount({ id: accountId, @@ -23,26 +23,25 @@ export const createFarmerVoteTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteTotalCount => { - const farmerVoteTotalCount = cache.farmerVoteTotalCount.get(accountId); + const farmerVoteTotalCount = cache.farmerVoteTotalCount.get(accountId) - if (!farmerVoteTotalCount) - return createFarmerVoteTotalCount(block, accountId, props); + if (!farmerVoteTotalCount) return createFarmerVoteTotalCount(block, accountId, props) - return farmerVoteTotalCount; -}; + return farmerVoteTotalCount +} export const createFarmerVoteTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteTotalValue => new FarmerVoteTotalValue({ id: accountId, @@ -52,26 +51,25 @@ export const createFarmerVoteTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteTotalValue => { - const farmerVoteTotalValue = cache.farmerVoteTotalValue.get(accountId); + const farmerVoteTotalValue = cache.farmerVoteTotalValue.get(accountId) - if (!farmerVoteTotalValue) - return createFarmerVoteTotalValue(block, accountId, props); + if (!farmerVoteTotalValue) return createFarmerVoteTotalValue(block, accountId, props) - return farmerVoteTotalValue; -}; + return farmerVoteTotalValue +} export const createFarmerBlockTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerBlockTotalCount => new FarmerBlockTotalCount({ id: accountId, @@ -81,26 +79,25 @@ export const createFarmerBlockTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerBlockTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerBlockTotalCount => { - const farmerBlockTotalCount = cache.farmerBlockTotalCount.get(accountId); + const farmerBlockTotalCount = cache.farmerBlockTotalCount.get(accountId) - if (!farmerBlockTotalCount) - return createFarmerBlockTotalCount(block, accountId, props); + if (!farmerBlockTotalCount) return createFarmerBlockTotalCount(block, accountId, props) - return farmerBlockTotalCount; -}; + return farmerBlockTotalCount +} export const createFarmerBlockTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerBlockTotalValue => new FarmerBlockTotalValue({ id: accountId, @@ -110,26 +107,25 @@ export const createFarmerBlockTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerBlockTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerBlockTotalValue => { - const farmerBlockTotalValue = cache.farmerBlockTotalValue.get(accountId); + const farmerBlockTotalValue = cache.farmerBlockTotalValue.get(accountId) - if (!farmerBlockTotalValue) - return createFarmerBlockTotalValue(block, accountId, props); + if (!farmerBlockTotalValue) return createFarmerBlockTotalValue(block, accountId, props) - return farmerBlockTotalValue; -}; + return farmerBlockTotalValue +} export const createFarmerVoteAndBlockTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteAndBlockTotalCount => new FarmerVoteAndBlockTotalCount({ id: accountId, @@ -139,27 +135,26 @@ export const createFarmerVoteAndBlockTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteAndBlockTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteAndBlockTotalCount => { - const farmerVoteAndBlockTotalCount = - cache.farmerVoteAndBlockTotalCount.get(accountId); + const farmerVoteAndBlockTotalCount = cache.farmerVoteAndBlockTotalCount.get(accountId) if (!farmerVoteAndBlockTotalCount) - return createFarmerVoteAndBlockTotalCount(block, accountId, props); + return createFarmerVoteAndBlockTotalCount(block, accountId, props) - return farmerVoteAndBlockTotalCount; -}; + return farmerVoteAndBlockTotalCount +} export const createFarmerVoteAndBlockTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): FarmerVoteAndBlockTotalValue => new FarmerVoteAndBlockTotalValue({ id: accountId, @@ -169,19 +164,18 @@ export const createFarmerVoteAndBlockTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateFarmerVoteAndBlockTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): FarmerVoteAndBlockTotalValue => { - const farmerVoteAndBlockTotalValue = - cache.farmerVoteAndBlockTotalValue.get(accountId); + const farmerVoteAndBlockTotalValue = cache.farmerVoteAndBlockTotalValue.get(accountId) if (!farmerVoteAndBlockTotalValue) - return createFarmerVoteAndBlockTotalValue(block, accountId, props); + return createFarmerVoteAndBlockTotalValue(block, accountId, props) - return farmerVoteAndBlockTotalValue; -}; + return farmerVoteAndBlockTotalValue +} diff --git a/indexers/leaderboard-squid/src/storage/nominator.ts b/indexers/leaderboard-squid/src/storage/nominator.ts index 89111678b..1832338f6 100644 --- a/indexers/leaderboard-squid/src/storage/nominator.ts +++ b/indexers/leaderboard-squid/src/storage/nominator.ts @@ -2,15 +2,15 @@ import { NominatorDepositsTotalCount, NominatorDepositsTotalValue, NominatorWithdrawalsTotalCount, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createNominatorDepositsTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorDepositsTotalCount => new NominatorDepositsTotalCount({ id: accountId, @@ -20,27 +20,26 @@ export const createNominatorDepositsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorDepositsTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorDepositsTotalCount => { - const nominatorDepositsTotalCount = - cache.nominatorDepositsTotalCount.get(accountId); + const nominatorDepositsTotalCount = cache.nominatorDepositsTotalCount.get(accountId) if (!nominatorDepositsTotalCount) - return createNominatorDepositsTotalCount(block, accountId, props); + return createNominatorDepositsTotalCount(block, accountId, props) - return nominatorDepositsTotalCount; -}; + return nominatorDepositsTotalCount +} export const createNominatorDepositsTotalValue = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorDepositsTotalValue => new NominatorDepositsTotalValue({ id: accountId, @@ -50,27 +49,26 @@ export const createNominatorDepositsTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorDepositsTotalValue = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorDepositsTotalValue => { - const nominatorDepositsTotalValue = - cache.nominatorDepositsTotalValue.get(accountId); + const nominatorDepositsTotalValue = cache.nominatorDepositsTotalValue.get(accountId) if (!nominatorDepositsTotalValue) - return createNominatorDepositsTotalValue(block, accountId, props); + return createNominatorDepositsTotalValue(block, accountId, props) - return nominatorDepositsTotalValue; -}; + return nominatorDepositsTotalValue +} export const createNominatorWithdrawalsTotalCount = ( block: CtxBlock, accountId: string, - props: Partial + props: Partial, ): NominatorWithdrawalsTotalCount => new NominatorWithdrawalsTotalCount({ id: accountId, @@ -80,19 +78,18 @@ export const createNominatorWithdrawalsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateNominatorWithdrawalsTotalCount = ( cache: Cache, block: CtxBlock, accountId: string, - props: Partial = {} + props: Partial = {}, ): NominatorWithdrawalsTotalCount => { - const nominatorWithdrawalsTotalCount = - cache.nominatorWithdrawalsTotalCount.get(accountId); + const nominatorWithdrawalsTotalCount = cache.nominatorWithdrawalsTotalCount.get(accountId) if (!nominatorWithdrawalsTotalCount) - return createNominatorWithdrawalsTotalCount(block, accountId, props); + return createNominatorWithdrawalsTotalCount(block, accountId, props) - return nominatorWithdrawalsTotalCount; -}; + return nominatorWithdrawalsTotalCount +} diff --git a/indexers/leaderboard-squid/src/storage/operator.ts b/indexers/leaderboard-squid/src/storage/operator.ts index 843211fef..44e99e244 100644 --- a/indexers/leaderboard-squid/src/storage/operator.ts +++ b/indexers/leaderboard-squid/src/storage/operator.ts @@ -5,15 +5,15 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createOperatorTotalRewardsCollected = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorTotalRewardsCollected => new OperatorTotalRewardsCollected({ id: operatorId, @@ -23,27 +23,26 @@ export const createOperatorTotalRewardsCollected = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorTotalRewardsCollected = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorTotalRewardsCollected => { - const operatorTotalRewardsCollected = - cache.operatorTotalRewardsCollected.get(operatorId); + const operatorTotalRewardsCollected = cache.operatorTotalRewardsCollected.get(operatorId) if (!operatorTotalRewardsCollected) - return createOperatorTotalRewardsCollected(block, operatorId, props); + return createOperatorTotalRewardsCollected(block, operatorId, props) - return operatorTotalRewardsCollected; -}; + return operatorTotalRewardsCollected +} export const createOperatorTotalTaxCollected = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorTotalTaxCollected => new OperatorTotalTaxCollected({ id: operatorId, @@ -53,27 +52,25 @@ export const createOperatorTotalTaxCollected = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorTotalTaxCollected = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorTotalTaxCollected => { - const operatorTotalTaxCollected = - cache.operatorTotalTaxCollected.get(operatorId); + const operatorTotalTaxCollected = cache.operatorTotalTaxCollected.get(operatorId) - if (!operatorTotalTaxCollected) - return createOperatorTotalTaxCollected(block, operatorId, props); + if (!operatorTotalTaxCollected) return createOperatorTotalTaxCollected(block, operatorId, props) - return operatorTotalTaxCollected; -}; + return operatorTotalTaxCollected +} export const createOperatorBundleTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorBundleTotalCount => new OperatorBundleTotalCount({ id: operatorId, @@ -83,27 +80,25 @@ export const createOperatorBundleTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorBundleTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorBundleTotalCount => { - const operatorBundleTotalCount = - cache.operatorBundleTotalCount.get(operatorId); + const operatorBundleTotalCount = cache.operatorBundleTotalCount.get(operatorId) - if (!operatorBundleTotalCount) - return createOperatorBundleTotalCount(block, operatorId, props); + if (!operatorBundleTotalCount) return createOperatorBundleTotalCount(block, operatorId, props) - return operatorBundleTotalCount; -}; + return operatorBundleTotalCount +} export const createOperatorDepositsTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorDepositsTotalCount => new OperatorDepositsTotalCount({ id: operatorId, @@ -113,27 +108,25 @@ export const createOperatorDepositsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorDepositsTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorDepositsTotalCount => { - const operatorDepositsTotalCount = - cache.operatorDepositsTotalCount.get(operatorId); + const operatorDepositsTotalCount = cache.operatorDepositsTotalCount.get(operatorId) - if (!operatorDepositsTotalCount) - return createOperatorDepositsTotalCount(block, operatorId, props); + if (!operatorDepositsTotalCount) return createOperatorDepositsTotalCount(block, operatorId, props) - return operatorDepositsTotalCount; -}; + return operatorDepositsTotalCount +} export const createOperatorDepositsTotalValue = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorDepositsTotalValue => new OperatorDepositsTotalValue({ id: operatorId, @@ -143,27 +136,25 @@ export const createOperatorDepositsTotalValue = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorDepositsTotalValue = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorDepositsTotalValue => { - const operatorDepositsTotalValue = - cache.operatorDepositsTotalValue.get(operatorId); + const operatorDepositsTotalValue = cache.operatorDepositsTotalValue.get(operatorId) - if (!operatorDepositsTotalValue) - return createOperatorDepositsTotalValue(block, operatorId, props); + if (!operatorDepositsTotalValue) return createOperatorDepositsTotalValue(block, operatorId, props) - return operatorDepositsTotalValue; -}; + return operatorDepositsTotalValue +} export const createOperatorWithdrawalsTotalCount = ( block: CtxBlock, operatorId: string, - props: Partial + props: Partial, ): OperatorWithdrawalsTotalCount => new OperatorWithdrawalsTotalCount({ id: operatorId, @@ -173,19 +164,18 @@ export const createOperatorWithdrawalsTotalCount = ( lastContributionAt: getTimestamp(block), createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperatorWithdrawalsTotalCount = ( cache: Cache, block: CtxBlock, operatorId: string, - props: Partial = {} + props: Partial = {}, ): OperatorWithdrawalsTotalCount => { - const operatorWithdrawalsTotalCount = - cache.operatorWithdrawalsTotalCount.get(operatorId); + const operatorWithdrawalsTotalCount = cache.operatorWithdrawalsTotalCount.get(operatorId) if (!operatorWithdrawalsTotalCount) - return createOperatorWithdrawalsTotalCount(block, operatorId, props); + return createOperatorWithdrawalsTotalCount(block, operatorId, props) - return operatorWithdrawalsTotalCount; -}; + return operatorWithdrawalsTotalCount +} diff --git a/indexers/leaderboard-squid/src/types/balances/calls.ts b/indexers/leaderboard-squid/src/types/balances/calls.ts index 03fbec1ea..609cb43de 100644 --- a/indexers/leaderboard-squid/src/types/balances/calls.ts +++ b/indexers/leaderboard-squid/src/types/balances/calls.ts @@ -1,119 +1,119 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v5 from '../v5' -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }), + ), } -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }), + ), } -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }), + ), } -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }), + ), } -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }), + ), } -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/balances/constants.ts b/indexers/leaderboard-squid/src/types/balances/constants.ts index 5cab2c7e3..aac0c6f9e 100644 --- a/indexers/leaderboard-squid/src/types/balances/constants.ts +++ b/indexers/leaderboard-squid/src/types/balances/constants.ts @@ -1,59 +1,44 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType('Balances.ExistentialDeposit', sts.bigint()), } -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType('Balances.MaxLocks', sts.number()), } -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType('Balances.MaxReserves', sts.number()), } -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType('Balances.MaxHolds', sts.number()), } -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType('Balances.MaxFreezes', sts.number()), } diff --git a/indexers/leaderboard-squid/src/types/balances/events.ts b/indexers/leaderboard-squid/src/types/balances/events.ts index fda7f6e59..e03356954 100644 --- a/indexers/leaderboard-squid/src/types/balances/events.ts +++ b/indexers/leaderboard-squid/src/types/balances/events.ts @@ -1,312 +1,312 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }), + ), } -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }), + ), } -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }), + ), } -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }), + ), } -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }), + ), } -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }), + ), } -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/balances/storage.ts b/indexers/leaderboard-squid/src/types/balances/storage.ts index 5f4a19212..bc3249096 100644 --- a/indexers/leaderboard-squid/src/types/balances/storage.ts +++ b/indexers/leaderboard-squid/src/types/balances/storage.ts @@ -1,253 +1,358 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, } /** * The total units issued in the system. */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType( + 'Balances.InactiveIssuance', + 'Default', + [], + sts.bigint(), + ) as InactiveIssuanceV0, } /** * The total units of outstanding deactivated balance in the system. */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, } /** * The Balances pallet example of storing the balance of an account. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> * } * ``` - * + * * You can also store the balance of an account in the `System` pallet. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = System * } * ``` - * + * * But this comes with tradeoffs, storing account balances in the system pallet stores * `frame_system` data alongside the account data contrary to storing account balances in the * `Balances` pallet, which uses a `StorageMap` to store balances data only. * NOTE: This is only used in the case that this pallet is used to store balances. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType( + 'Balances.Locks', + 'Default', + [v0.AccountId32], + sts.array(() => v0.BalanceLock), + ) as LocksV0, } /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType( + 'Balances.Reserves', + 'Default', + [v0.AccountId32], + sts.array(() => v0.ReserveData), + ) as ReservesV0, } /** * Named reserves on some account balances. */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType( + 'Balances.Holds', + 'Default', + [v0.AccountId32], + sts.array(() => v0.IdAmount), + ) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType( + 'Balances.Holds', + 'Default', + [v1.AccountId32], + sts.array(() => v1.IdAmount), + ) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType( + 'Balances.Holds', + 'Default', + [v3.AccountId32], + sts.array(() => v3.IdAmount), + ) as HoldsV3, } /** * Holds on account balances. */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> } /** * Holds on account balances. */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v1.AccountId32, + ): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.AccountId32, + ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> } /** * Holds on account balances. */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairs( + block: Block, + key: v3.AccountId32, + ): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v3.AccountId32, + ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType( + 'Balances.Freezes', + 'Default', + [v0.AccountId32], + sts.array(() => v0.Type_152), + ) as FreezesV0, } /** * Freeze locks on account balances. */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> } diff --git a/indexers/leaderboard-squid/src/types/domains/calls.ts b/indexers/leaderboard-squid/src/types/domains/calls.ts index 3ecf1398b..803c3241f 100644 --- a/indexers/leaderboard-squid/src/types/domains/calls.ts +++ b/indexers/leaderboard-squid/src/types/domains/calls.ts @@ -1,278 +1,278 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }), + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }), + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }), + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }), + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }), + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }), + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }), + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }), + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }), + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }), + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }), + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }), + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/domains/constants.ts b/indexers/leaderboard-squid/src/types/domains/constants.ts index a26b47666..aca0daa1d 100644 --- a/indexers/leaderboard-squid/src/types/domains/constants.ts +++ b/indexers/leaderboard-squid/src/types/domains/constants.ts @@ -1,213 +1,153 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType('Domains.MaxNominators', sts.number()), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType('Domains.SudoId', v0.AccountId32), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType('Domains.PalletId', v1.PalletId), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]), + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType('Domains.BundleLongevity', sts.number()), } diff --git a/indexers/leaderboard-squid/src/types/domains/events.ts b/indexers/leaderboard-squid/src/types/domains/events.ts index d6551e7d0..f10bdb7c7 100644 --- a/indexers/leaderboard-squid/src/types/domains/events.ts +++ b/indexers/leaderboard-squid/src/types/domains/events.ts @@ -1,250 +1,250 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }), + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }), + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }), + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }), + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }), + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }), + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }), + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }), + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }), + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }), + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }), + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }), + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }), + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/domains/storage.ts b/indexers/leaderboard-squid/src/types/domains/storage.ts index 495ae0e03..c586dbd04 100644 --- a/indexers/leaderboard-squid/src/types/domains/storage.ts +++ b/indexers/leaderboard-squid/src/types/domains/storage.ts @@ -1,452 +1,773 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulBundles', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulFraudProofs', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const runtimeRegistry = { + v0: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v0.RuntimeObject, + ) as RuntimeRegistryV0, + v5: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v5.RuntimeObject, + ) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType( + 'Domains.ScheduledRuntimeUpgrades', + 'Optional', + [sts.number(), sts.number()], + v0.ScheduledRuntimeUpgrade, + ) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise + getMany( + block: Block, + keys: [number, number][], + ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[number, number][]> + getPairs( + block: Block, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + key2: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const operatorIdOwner = { + v0: new StorageType( + 'Domains.OperatorIdOwner', + 'Optional', + [sts.bigint()], + v0.AccountId32, + ) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType( + 'Domains.OperatorSigningKey', + 'Optional', + [sts.bytes()], + sts.bigint(), + ) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: Bytes, + ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> +} + +export const domainStakingSummary = { + v0: new StorageType( + 'Domains.DomainStakingSummary', + 'Optional', + [v0.DomainId], + v0.StakingSummary, + ) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType( + 'Domains.PendingOperatorSwitches', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType( + 'Domains.OperatorEpochSharePrice', + 'Optional', + [sts.bigint(), v0.DomainEpoch], + v0.SharePrice, + ) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Deposit, + ) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Deposit, + ) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Withdrawal, + ) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Withdrawal, + ) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType( + 'Domains.NominatorCount', + 'Default', + [sts.bigint()], + sts.number(), + ) as NominatorCountV0, } /** @@ -457,28 +778,37 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: number | undefined][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType( + 'Domains.PendingSlashes', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingSlashesV0, } /** @@ -486,341 +816,537 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType( + 'Domains.PendingStakingOperationCount', + 'Default', + [v0.DomainId], + sts.number(), + ) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v0.DomainId], + v0.DomainObject, + ) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v1.DomainId], + v1.DomainObject, + ) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v5.DomainId], + v5.DomainObject, + ) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairs( + block: Block, + key: v5.DomainId, + ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.DomainId, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType( + 'Domains.BlockTree', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v0.H256], + v0.BlockTreeNode, + ) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v1.H256], + v1.BlockTreeNode, + ) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v5.H256], + v5.BlockTreeNode, + ) as BlockTreeNodesV5, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.H256, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.H256, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType( + 'Domains.HeadReceiptNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType( + 'Domains.LatestConfirmedDomainBlockNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType( + 'Domains.HeadReceiptExtended', + 'Default', + [v0.DomainId], + sts.boolean(), + ) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType( + 'Domains.StateRoots', + 'Optional', + [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], + v0.H256, + ) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType( + 'Domains.ConsensusBlockHash', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as ConsensusBlockHashV0, } /** @@ -828,114 +1354,277 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v0.DomainId, sts.number(), sts.number()], + sts.array(() => v0.BundleDigest), + ) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v1.DomainId, sts.number(), sts.number()], + sts.array(() => v1.BundleDigest), + ) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v0.DomainId, number, number][], + ): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v1.DomainId, number, number][], + ): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType( + 'Domains.InboxedBundleAuthor', + 'Optional', + [v0.H256], + sts.bigint(), + ) as InboxedBundleAuthorV0, } /** @@ -943,28 +1632,40 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType( + 'Domains.HeadDomainNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadDomainNumberV0, } /** @@ -973,30 +1674,42 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType( + 'Domains.LastEpochStakingDistribution', + 'Optional', + [v0.DomainId], + v0.ElectionVerificationParams, + ) as LastEpochStakingDistributionV0, } /** @@ -1006,221 +1719,336 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> +} + +export const domainTxRangeState = { + v0: new StorageType( + 'Domains.DomainTxRangeState', + 'Optional', + [v0.DomainId], + v0.TxRangeState, + ) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType( + 'Domains.LatestConfirmedDomainBlock', + 'Optional', + [v1.DomainId], + v1.ConfirmedDomainBlock, + ) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType( + 'Domains.LatestSubmittedER', + 'Default', + [sts.tuple(() => [v3.DomainId, sts.bigint()])], + sts.number(), + ) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairs( + block: Block, + key: [v3.DomainId, bigint], + ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType( + 'Domains.OperatorHighestSlot', + 'Default', + [sts.bigint()], + sts.bigint(), + ) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint | undefined][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType( + 'Domains.OperatorBundleSlot', + 'Default', + [sts.bigint()], + sts.array(() => sts.bigint()), + ) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType( + 'Domains.PermissionedActionAllowedBy', + 'Optional', + [], + v5.PermissionedActionAllowedBy, + ) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType( + 'Domains.AccumulatedTreasuryFunds', + 'Default', + [], + sts.bigint(), + ) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgradeRecords', + 'Default', + [sts.number()], + sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), + ) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> + getMany( + block: Block, + keys: number[], + ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs( + block: Block, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairs( + block: Block, + key: number, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgrades', + 'Default', + [], + sts.array(() => sts.number()), + ) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise } diff --git a/indexers/leaderboard-squid/src/types/rewards/calls.ts b/indexers/leaderboard-squid/src/types/rewards/calls.ts index b8486afff..1608b0cbe 100644 --- a/indexers/leaderboard-squid/src/types/rewards/calls.ts +++ b/indexers/leaderboard-squid/src/types/rewards/calls.ts @@ -1,16 +1,16 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v3 from '../v3' -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/constants.ts b/indexers/leaderboard-squid/src/types/rewards/constants.ts index e1004ecc1..960b446d6 100644 --- a/indexers/leaderboard-squid/src/types/rewards/constants.ts +++ b/indexers/leaderboard-squid/src/types/rewards/constants.ts @@ -1,61 +1,46 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType('Rewards.BlockReward', sts.bigint()), } -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType('Rewards.VoteReward', sts.bigint()), } -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType('Rewards.AvgBlockspaceUsageNumBlocks', sts.number()), } -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType('Rewards.TransactionByteFee', sts.bigint()), } -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType('Rewards.MaxRewardPoints', sts.number()), } -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]), + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/events.ts b/indexers/leaderboard-squid/src/types/rewards/events.ts index 5b01a1694..ce993f9b9 100644 --- a/indexers/leaderboard-squid/src/types/rewards/events.ts +++ b/indexers/leaderboard-squid/src/types/rewards/events.ts @@ -1,30 +1,30 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }), + ), } -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/storage.ts b/indexers/leaderboard-squid/src/types/rewards/storage.ts index 971093421..300403260 100644 --- a/indexers/leaderboard-squid/src/types/rewards/storage.ts +++ b/indexers/leaderboard-squid/src/types/rewards/storage.ts @@ -1,82 +1,102 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v3 from '../v3' -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType( + 'Rewards.AvgBlockspaceUsage', + 'Default', + [], + sts.number(), + ) as AvgBlockspaceUsageV3, } /** * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, } /** * Whether rewards are enabled */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType( + 'Rewards.RemainingIssuance', + 'Default', + [], + sts.bigint(), + ) as RemainingIssuanceV3, } /** * Tokens left to issue to farmers at any given time */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType( + 'Rewards.ProposerSubsidyPoints', + 'Default', + [], + sts.array(() => v3.RewardPoint), + ) as ProposerSubsidyPointsV3, } /** * Block proposer subsidy parameters */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise } -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType( + 'Rewards.VoterSubsidyPoints', + 'Default', + [], + sts.array(() => v3.RewardPoint), + ) as VoterSubsidyPointsV3, } /** * Voter subsidy parameters */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise } diff --git a/indexers/leaderboard-squid/src/types/subspace/calls.ts b/indexers/leaderboard-squid/src/types/subspace/calls.ts index add70afae..02324c4fa 100644 --- a/indexers/leaderboard-squid/src/types/subspace/calls.ts +++ b/indexers/leaderboard-squid/src/types/subspace/calls.ts @@ -1,79 +1,76 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }), + ), } -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }), + ), } -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + ), } -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }), + ), } -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }), + ), } -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType('Subspace.enable_authoring_by_anyone', sts.unit()), } diff --git a/indexers/leaderboard-squid/src/types/subspace/constants.ts b/indexers/leaderboard-squid/src/types/subspace/constants.ts index 555317b21..e90f6126b 100644 --- a/indexers/leaderboard-squid/src/types/subspace/constants.ts +++ b/indexers/leaderboard-squid/src/types/subspace/constants.ts @@ -1,154 +1,118 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType('Subspace.BlockAuthoringDelay', v0.Slot), } -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionInterval', sts.number()), } -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionLookbackDepth', sts.number()), } -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType('Subspace.PotEntropyInjectionDelay', v0.Slot), } -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType('Subspace.EraDuration', sts.number()), } -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType('Subspace.InitialSolutionRange', sts.bigint()), } -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]), + ), } -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType('Subspace.ConfirmationDepthK', sts.number()), } -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType('Subspace.RecentSegments', v0.HistorySize), } -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]), + ), } -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType('Subspace.MinSectorLifetime', v0.HistorySize), } -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType('Subspace.ExpectedVotesPerBlock', sts.number()), } -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType('Subspace.MaxPiecesInSector', sts.number()), } -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType('Subspace.BlockSlotCount', sts.number()), } diff --git a/indexers/leaderboard-squid/src/types/subspace/events.ts b/indexers/leaderboard-squid/src/types/subspace/events.ts index 65427a471..08d785a58 100644 --- a/indexers/leaderboard-squid/src/types/subspace/events.ts +++ b/indexers/leaderboard-squid/src/types/subspace/events.ts @@ -1,31 +1,31 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }), + ), } -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/subspace/storage.ts b/indexers/leaderboard-squid/src/types/subspace/storage.ts index 8c1220cc5..eb4811562 100644 --- a/indexers/leaderboard-squid/src/types/subspace/storage.ts +++ b/indexers/leaderboard-squid/src/types/subspace/storage.ts @@ -1,390 +1,525 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v3 from '../v3' -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, } /** * The slot at which the first block was created. This is 0 until the first block of the chain. */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise } -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, } /** * Current slot number. */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise } -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType( + 'Subspace.PotSlotIterations', + 'Optional', + [], + v0.NonZeroU32, + ) as PotSlotIterationsV0, } /** * Number of iterations for proof of time per slot */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType( + 'Subspace.SolutionRanges', + 'Default', + [], + v0.SolutionRanges, + ) as SolutionRangesV0, } /** * Solution ranges used for challenges. */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise } -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType( + 'Subspace.ShouldAdjustSolutionRange', + 'Default', + [], + sts.boolean(), + ) as ShouldAdjustSolutionRangeV0, } /** * Storage to check if the solution range is to be adjusted for next era */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType( + 'Subspace.NextSolutionRangeOverride', + 'Optional', + [], + v0.SolutionRangeOverride, + ) as NextSolutionRangeOverrideV0, } /** * Override solution range during next update */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, } /** * Slot at which current era started. */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, } /** * A set of blocked farmers keyed by their public key. */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: null | undefined][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: null | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.Public, v: null | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.Public, + ): AsyncIterable<[k: v0.Public, v: null | undefined][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType( + 'Subspace.SegmentCommitment', + 'Optional', + [v0.SegmentIndex], + v0.SegmentCommitment, + ) as SegmentCommitmentV0, } /** * Mapping from segment index to corresponding segment commitment of contained records. */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged( + pageSize: number, + block: Block, + key: v0.SegmentIndex, + ): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairs( + block: Block, + key: v0.SegmentIndex, + ): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.SegmentIndex, + ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType( + 'Subspace.CounterForSegmentCommitment', + 'Default', + [], + sts.number(), + ) as CounterForSegmentCommitmentV0, } /** * Counter for the related counted storage map */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType( + 'Subspace.DidProcessSegmentHeaders', + 'Default', + [], + sts.boolean(), + ) as DidProcessSegmentHeadersV0, } /** * Whether the segment headers inherent has been processed in this block (temporary value). - * + * * This value is updated to `true` when processing `store_segment_headers` by a node. * It is then cleared at the end of each block execution in the `on_finalize` hook. */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType( + 'Subspace.ParentVoteVerificationData', + 'Optional', + [], + v0.VoteVerificationData, + ) as ParentVoteVerificationDataV0, } /** * Storage of previous vote verification data, updated on each block during finalization. */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType( + 'Subspace.ParentBlockAuthorInfo', + 'Optional', + [], + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + ) as ParentBlockAuthorInfoV0, } /** * Parent block author information. */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined> } -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, } /** * Enable rewards since specified block number. */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType( + 'Subspace.EnableRewardsBelowSolutionRange', + 'Optional', + [], + sts.bigint(), + ) as EnableRewardsBelowSolutionRangeV0, } /** * Enable rewards when solution range is below this threshold. */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType( + 'Subspace.CurrentBlockAuthorInfo', + 'Optional', + [], + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32]), + ) as CurrentBlockAuthorInfoV0, } /** * Temporary value (cleared at block finalization) with block author information. */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get( + block: Block, + ): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType( + 'Subspace.ParentBlockVoters', + 'Default', + [], + sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + sts.tuple(() => [v0.AccountId32, v0.Signature]), + ]), + ), + ) as ParentBlockVotersV0, } /** * Voters in the parent block (set at the end of the block with current values). */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault( + block: Block, + ): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get( + block: Block, + ): Promise< + | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + | undefined + > +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType( + 'Subspace.CurrentBlockVoters', + 'Optional', + [], + sts.array(() => + sts.tuple(() => [ + sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), + sts.tuple(() => [v0.AccountId32, v0.Signature]), + ]), + ), + ) as CurrentBlockVotersV0, } /** * Temporary value (cleared at block finalization) with voters in the current block thus far. */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get( + block: Block, + ): Promise< + | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + | undefined + > +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType( + 'Subspace.PotEntropy', + 'Default', + [], + sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue])), + ) as PotEntropyV0, } /** * Entropy that needs to be injected into proof of time chain at specific slot associated with * block number it came from. */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<[number, v0.PotEntropyValue][] | undefined> } -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType( + 'Subspace.BlockRandomness', + 'Optional', + [], + v0.Randomness, + ) as BlockRandomnessV0, } /** * The current block randomness, updated at block initialization. When the proof of time feature * is enabled it derived from PoT otherwise PoR. */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType( + 'Subspace.AllowAuthoringByAnyone', + 'Default', + [], + sts.boolean(), + ) as AllowAuthoringByAnyoneV0, } /** * Allow block authoring by anyone or just root. */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType( + 'Subspace.RootPlotPublicKey', + 'Optional', + [], + v0.Public, + ) as RootPlotPublicKeyV0, } /** * Root plot public key. - * + * * Set just once to make sure no one else can author blocks until allowed for anyone. */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType( + 'Subspace.BlockSlots', + 'Default', + [], + sts.array(() => sts.tuple(() => [sts.number(), v3.Slot])), + ) as BlockSlotsV3, } /** * Bounded mapping from block number to slot */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<[number, v3.Slot][] | undefined> } diff --git a/indexers/leaderboard-squid/src/types/support.ts b/indexers/leaderboard-squid/src/types/support.ts index 456dfc2fb..53e364bb5 100644 --- a/indexers/leaderboard-squid/src/types/support.ts +++ b/indexers/leaderboard-squid/src/types/support.ts @@ -1,142 +1,146 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' +import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' +import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' - -export {sts, Bytes, BitSequence, Option, Result} - +export { sts, Bytes, BitSequence, Option, Result } export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } - export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } - interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } - export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } - export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor( + private name: QualifiedName, + private type: T, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } - export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged( + pageSize: number, + block: Block, + ...args: any[] + ): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/leaderboard-squid/src/types/system/calls.ts b/indexers/leaderboard-squid/src/types/system/calls.ts index 24f23464e..7aab74fd6 100644 --- a/indexers/leaderboard-squid/src/types/system/calls.ts +++ b/indexers/leaderboard-squid/src/types/system/calls.ts @@ -1,146 +1,146 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }), + ), } -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }), + ), } -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }), + ), } -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }), + ), } -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + ), } -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }), + ), } -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + ), } -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }), + ), } -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }), + ), } -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }), + ), } -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/system/constants.ts b/indexers/leaderboard-squid/src/types/system/constants.ts index 653ab1df2..638f33f60 100644 --- a/indexers/leaderboard-squid/src/types/system/constants.ts +++ b/indexers/leaderboard-squid/src/types/system/constants.ts @@ -1,66 +1,48 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType('System.BlockWeights', v0.BlockWeights), } -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType('System.BlockLength', v0.BlockLength), } -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType('System.BlockHashCount', sts.number()), } -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType('System.DbWeight', v0.RuntimeDbWeight), } -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType('System.Version', v0.RuntimeVersion), } -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType('System.SS58Prefix', sts.number()), } diff --git a/indexers/leaderboard-squid/src/types/system/events.ts b/indexers/leaderboard-squid/src/types/system/events.ts index 2c8c5731b..e5a14e4aa 100644 --- a/indexers/leaderboard-squid/src/types/system/events.ts +++ b/indexers/leaderboard-squid/src/types/system/events.ts @@ -1,94 +1,91 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }), + ), } -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }), + ), } -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType('System.CodeUpdated', sts.unit()), } -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }), + ), } -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }), + ), } -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }), + ), } -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/system/storage.ts b/indexers/leaderboard-squid/src/types/system/storage.ts index 9f776b387..c2df3d971 100644 --- a/indexers/leaderboard-squid/src/types/system/storage.ts +++ b/indexers/leaderboard-squid/src/types/system/storage.ts @@ -1,405 +1,488 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, } /** * The full account information for a particular account ID. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairs( + block: Block, + key: v0.AccountId32, + ): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.AccountId32, + ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, } /** * Total extrinsics count for the current block. */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, } /** * The current weight for the block. */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise } -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType( + 'System.AllExtrinsicsLen', + 'Optional', + [], + sts.number(), + ) as AllExtrinsicsLenV0, } /** * Total length (in bytes) for all extrinsics put together, for the current block. */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, } /** * Map of block numbers to block hashes. */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v0.H256 | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType( + 'System.ExtrinsicData', + 'Default', + [sts.number()], + sts.bytes(), + ) as ExtrinsicDataV0, } /** * Extrinsics data for the current block (maps an extrinsic's index to its data). */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: Bytes | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: Bytes | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: Bytes | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: Bytes | undefined][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, } /** * The current block number being processed. Set by `execute_block`. */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, } /** * Hash of the previous block. */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise } -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, } /** * Digest of the current block, also part of the block header. */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v0.EventRecord), + ) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v1.EventRecord), + ) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType( + 'System.Events', + 'Default', + [], + sts.array(() => v5.EventRecord), + ) as EventsV5, } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise } -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, } /** * The number of events in the `Events` list. */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType( + 'System.EventTopics', + 'Default', + [v0.H256], + sts.array(() => sts.tuple(() => [sts.number(), sts.number()])), + ) as EventTopicsV0, } /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `>` list. - * + * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. - * + * * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<[number, number][] | undefined> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: [number, number][] | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: [number, number][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType( + 'System.LastRuntimeUpgrade', + 'Optional', + [], + v0.LastRuntimeUpgradeInfo, + ) as LastRuntimeUpgradeV0, } /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType( + 'System.UpgradedToU32RefCount', + 'Default', + [], + sts.boolean(), + ) as UpgradedToU32RefCountV0, } /** * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType( + 'System.UpgradedToTripleRefCount', + 'Default', + [], + sts.boolean(), + ) as UpgradedToTripleRefCountV0, } /** * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False * (default) if not. */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, } /** * The execution phase of the block. */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType( + 'System.AuthorizedUpgrade', + 'Optional', + [], + v0.CodeUpgradeAuthorization, + ) as AuthorizedUpgradeV0, } /** * `Some` if a code upgrade has been authorized. */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType( + 'System.InherentsApplied', + 'Default', + [], + sts.boolean(), + ) as InherentsAppliedV5, } /** * Whether all inherents have been applied. */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts index 60de86b39..36eb4e3eb 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts @@ -1,43 +1,31 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType('TransactionFees.MinReplicationFactor', sts.number()), } -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType('TransactionFees.CreditSupply', sts.bigint()), } -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType('TransactionFees.TotalSpacePledged', sts.bigint()), } -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType('TransactionFees.BlockchainHistorySize', sts.bigint()), } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts index 4726ccd18..e7afe93bb 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts @@ -1,54 +1,54 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }), + ), } -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts index 34c003453..45d0515c6 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts @@ -1,86 +1,106 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType( + 'TransactionFees.TransactionByteFee', + 'Default', + [], + v0.BlockTransactionByteFee, + ) as TransactionByteFeeV0, } /** * The value of `transaction_byte_fee` for both the current and the next block. - * + * * The `next` value of `transaction_byte_fee` is updated at block finalization and used to * validate extrinsic to be included in the next block, the value is move to `current` at * block initialization and used to execute extrinsic in the current block. Together it * ensure we use the same value for both validating and executing the extrinsic. - * + * * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in * the genesis block which means there will be no signed extrinsic included in block #1. */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise } -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType( + 'TransactionFees.IsDuringBlockExecution', + 'Default', + [], + sts.boolean(), + ) as IsDuringBlockExecutionV0, } /** * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` * is used to validate extrinsic or execute extrinsic. */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise } -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType( + 'TransactionFees.BlockAuthor', + 'Optional', + [], + v0.AccountId32, + ) as BlockAuthorV0, } /** * Temporary value (cleared at block finalization) which contains current block author, so we * can issue fees during block finalization. */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType( + 'TransactionFees.CollectedBlockFees', + 'Optional', + [], + v0.CollectedFees, + ) as CollectedBlockFeesV0, } /** * Temporary value (cleared at block finalization) which contains current block fees, so we can * issue fees during block finalization. */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts index 92856764a..c7363273b 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts @@ -1,31 +1,28 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType('TransactionPayment.OperationalFeeMultiplier', sts.number()), } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts index f2e82a56e..8f317f986 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts @@ -1,18 +1,18 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts index 1fe2ddae7..6deaeec28 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts @@ -1,22 +1,32 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, +export const nextFeeMultiplier = { + v0: new StorageType( + 'TransactionPayment.NextFeeMultiplier', + 'Default', + [], + v0.FixedU128, + ) as NextFeeMultiplierV0, } -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise } -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, +export const storageVersion = { + v0: new StorageType( + 'TransactionPayment.StorageVersion', + 'Default', + [], + v0.Releases, + ) as StorageVersionV0, } -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise } diff --git a/indexers/leaderboard-squid/src/types/v0.ts b/indexers/leaderboard-squid/src/types/v0.ts index a00fca6ac..55324087b 100644 --- a/indexers/leaderboard-squid/src/types/v0.ts +++ b/indexers/leaderboard-squid/src/types/v0.ts @@ -1,389 +1,396 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const HistorySize = sts.bigint() export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } + return { + read: sts.bigint(), + write: sts.bigint(), + } }) export interface RuntimeDbWeight { - read: bigint - write: bigint + read: bigint + write: bigint } export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } + return { + max: Type_85, + } }) export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } }) export interface Type_85 { - normal: number - operational: number - mandatory: number + normal: number + operational: number + mandatory: number } export interface BlockLength { - max: Type_85 + max: Type_85 } export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } }) export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } }) export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } }) export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) + baseExtrinsic: Weight + maxExtrinsic?: Weight | undefined + maxTotal?: Weight | undefined + reserved?: Weight | undefined } export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass } export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: [DomainEpoch, number, bigint] | undefined } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => + sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), + ), + } }) export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -395,101 +402,104 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -497,18 +507,20 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -516,33 +528,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -550,18 +562,18 @@ export type DomainId = number export type Releases = Releases_V1Ancient | Releases_V2 export interface Releases_V1Ancient { - __kind: 'V1Ancient' + __kind: 'V1Ancient' } export interface Releases_V2 { - __kind: 'V2' + __kind: 'V2' } export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } }) export type FixedU128 = bigint @@ -569,162 +581,164 @@ export type FixedU128 = bigint export const FixedU128 = sts.bigint() export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint + storage: bigint + compute: bigint + tips: bigint } export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } }) export interface BlockTransactionByteFee { - current: bigint - next: bigint + current: bigint + next: bigint } export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } + return { + current: sts.bigint(), + next: sts.bigint(), + } }) export interface Type_152 { - amount: bigint + amount: bigint } export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } + return { + amount: sts.bigint(), + } }) export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface ReserveData { - id: Bytes - amount: bigint + id: Bytes + amount: bigint } export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } + return { + id: sts.bytes(), + amount: sts.bigint(), + } }) export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons + id: Bytes + amount: bigint + reasons: Reasons } export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc export interface Reasons_All { - __kind: 'All' + __kind: 'All' } export interface Reasons_Fee { - __kind: 'Fee' + __kind: 'Fee' } export interface Reasons_Misc { - __kind: 'Misc' + __kind: 'Misc' } export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } }) export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } }) export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags } export type ExtraFlags = bigint export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } }) export const ExtraFlags = sts.bigint() @@ -734,15 +748,15 @@ export type Randomness = Bytes export const Randomness = sts.bytes() export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes + targetSlot?: Slot | undefined + entropy: Bytes } export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } }) export type Signature = Bytes @@ -750,33 +764,33 @@ export type Signature = Bytes export const Signature = sts.bytes() export interface Scalar { - inner: Bytes + inner: Bytes } export type PieceOffset = number export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export const PieceOffset = sts.number() export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot } export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } }) export type SegmentIndex = bigint @@ -790,31 +804,31 @@ export const SegmentIndex = sts.bigint() export type Public = Bytes export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint + solutionRange: bigint + votingSolutionRange: bigint } export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } }) export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) + current: bigint + next?: bigint | undefined + votingCurrent: bigint + votingNext?: bigint | undefined } export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } }) export type NonZeroU32 = number @@ -826,181 +840,203 @@ export type Slot = bigint export const Slot = sts.bigint() export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean + codeHash: H256 + checkVersion: boolean } export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } + return { + codeHash: H256, + checkVersion: sts.boolean(), + } }) export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string + specVersion: number + specName: string } export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } + return { + specVersion: sts.number(), + specName: sts.string(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -1008,245 +1044,276 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } /** @@ -1259,199 +1326,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1463,45 +1546,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } /** @@ -1513,18 +1596,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1538,122 +1621,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1661,175 +1752,219 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle +export type SlashedReason = + | SlashedReason_BadExecutionReceipt + | SlashedReason_BundleEquivocation + | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1837,61 +1972,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1899,1168 +2034,1210 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) /** * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal +export type DigestItem = + | DigestItem_Consensus + | DigestItem_Other + | DigestItem_PreRuntime + | DigestItem_RuntimeEnvironmentUpdated + | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) export type H256 = Bytes export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight + normal: Weight + operational: Weight + mandatory: Weight } export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } }) export type AccountId32 = Bytes export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData } export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = + | MultiAddress_Address20 + | MultiAddress_Address32 + | MultiAddress_Id + | MultiAddress_Index + | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = + | EnableRewardsAt_Height + | EnableRewardsAt_Manually + | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) + __kind: 'Height' + value?: number | undefined } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3072,16 +3249,16 @@ export const RecordWitness = sts.bytes() export const RecordCommitment = sts.bytes() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3097,104 +3274,104 @@ export type HistorySize = bigint export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const DomainId = sts.number() export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Public = sts.bytes() export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const H256 = sts.bytes() @@ -3202,80 +3379,80 @@ export const H256 = sts.bytes() export const AccountId32 = sts.bytes() export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) diff --git a/indexers/leaderboard-squid/src/types/v1.ts b/indexers/leaderboard-squid/src/types/v1.ts index 4891a0287..1e41fa131 100644 --- a/indexers/leaderboard-squid/src/types/v1.ts +++ b/indexers/leaderboard-squid/src/types/v1.ts @@ -1,199 +1,204 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const PalletId = sts.bytes() export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -201,239 +206,245 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: WithdrawalInShares | undefined } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() @@ -441,197 +452,222 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking + | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -639,234 +675,265 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -879,199 +946,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1083,45 +1166,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1139,18 +1222,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1164,122 +1247,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1287,150 +1378,174 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_StorageFeeDeposited + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle +export type SlashedReason = + | SlashedReason_BadExecutionReceipt + | SlashedReason_BundleEquivocation + | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export type Slot = bigint @@ -1438,39 +1553,60 @@ export type Slot = bigint export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1478,61 +1614,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1540,436 +1676,445 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -1982,723 +2127,744 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const Slot = sts.bigint() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_InvalidTransfers + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes diff --git a/indexers/leaderboard-squid/src/types/v3.ts b/indexers/leaderboard-squid/src/types/v3.ts index 73fc962ae..63a3a48d6 100644 --- a/indexers/leaderboard-squid/src/types/v3.ts +++ b/indexers/leaderboard-squid/src/types/v3.ts @@ -1,8 +1,8 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } export type DomainId = number @@ -10,42 +10,46 @@ export type DomainId = number export const DomainId = sts.number() export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_PendingSlash + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -53,36 +57,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) @@ -92,103 +96,106 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier + __kind: 'Messenger' + value: MessengerHoldIdentifier } export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] + __kind: 'Channel' + value: [ChainId, bigint] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = + | DomainsHoldIdentifier_DomainInstantiation + | DomainsHoldIdentifier_Staking + | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } }) export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export const AccountId32 = sts.bytes() @@ -198,8 +205,8 @@ export type Slot = bigint export const Slot = sts.bigint() export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) diff --git a/indexers/leaderboard-squid/src/types/v5.ts b/indexers/leaderboard-squid/src/types/v5.ts index f626e91f8..14b3ff750 100644 --- a/indexers/leaderboard-squid/src/types/v5.ts +++ b/indexers/leaderboard-squid/src/types/v5.ts @@ -1,26 +1,28 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = + | PermissionedActionAllowedBy_Accounts + | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -28,162 +30,167 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidBundleWeight + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -191,150 +198,153 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -344,45 +354,47 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -390,134 +402,156 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = + | Event_Balances + | Event_Domains + | Event_Messenger + | Event_OffencesSubspace + | Event_Rewards + | Event_Subspace + | Event_Sudo + | Event_System + | Event_TransactionFees + | Event_TransactionPayment + | Event_Transporter + | Event_Utility + | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = + | VestingEvent_Claimed + | VestingEvent_VestingScheduleAdded + | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed +export type UtilityEvent = + | UtilityEvent_BatchCompleted + | UtilityEvent_BatchCompletedWithErrors + | UtilityEvent_BatchInterrupted + | UtilityEvent_DispatchedAs + | UtilityEvent_ItemCompleted + | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -525,234 +559,265 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = + | DispatchError_Arithmetic + | DispatchError_BadOrigin + | DispatchError_CannotLookup + | DispatchError_ConsumerRemaining + | DispatchError_Corruption + | DispatchError_Exhausted + | DispatchError_Module + | DispatchError_NoProviders + | DispatchError_Other + | DispatchError_RootNotAllowed + | DispatchError_Token + | DispatchError_TooManyConsumers + | DispatchError_Transactional + | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported +export type TokenError = + | TokenError_BelowMinimum + | TokenError_Blocked + | TokenError_CannotCreate + | TokenError_CannotCreateHold + | TokenError_Frozen + | TokenError_FundsUnavailable + | TokenError_NotExpendable + | TokenError_OnlyProvider + | TokenError_UnknownAsset + | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow +export type ArithmeticError = + | ArithmeticError_DivisionByZero + | ArithmeticError_Overflow + | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = + | TransporterEvent_IncomingTransferSuccessful + | TransporterEvent_OutgoingTransferFailed + | TransporterEvent_OutgoingTransferInitiated + | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -765,199 +830,215 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = + | TransactionFeesEvent_BlockFees + | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized +export type SystemEvent = + | SystemEvent_CodeUpdated + | SystemEvent_ExtrinsicFailed + | SystemEvent_ExtrinsicSuccess + | SystemEvent_KilledAccount + | SystemEvent_NewAccount + | SystemEvent_Remarked + | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational +export type DispatchClass = + | DispatchClass_Mandatory + | DispatchClass_Normal + | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone +export type SudoEvent = + | SudoEvent_KeyChanged + | SudoEvent_KeyRemoved + | SudoEvent_Sudid + | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: AccountId32 | undefined + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -969,45 +1050,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1025,18 +1106,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1050,122 +1131,130 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult +export type MessengerEvent = + | MessengerEvent_ChannelClosed + | MessengerEvent_ChannelInitiated + | MessengerEvent_ChannelOpen + | MessengerEvent_InboxMessage + | MessengerEvent_InboxMessageResponse + | MessengerEvent_OutboxMessage + | MessengerEvent_OutboxMessageResponse + | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1173,177 +1262,220 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake +export type DomainsEvent = + | DomainsEvent_BundleStored + | DomainsEvent_DomainEpochCompleted + | DomainsEvent_DomainInstantiated + | DomainsEvent_DomainOperatorAllowListUpdated + | DomainsEvent_DomainRuntimeCreated + | DomainsEvent_DomainRuntimeUpgradeScheduled + | DomainsEvent_DomainRuntimeUpgraded + | DomainsEvent_ForceDomainEpochTransition + | DomainsEvent_FraudProofProcessed + | DomainsEvent_FundsUnlocked + | DomainsEvent_OperatorDeregistered + | DomainsEvent_OperatorNominated + | DomainsEvent_OperatorRegistered + | DomainsEvent_OperatorRewarded + | DomainsEvent_OperatorSlashed + | DomainsEvent_OperatorSwitchedDomain + | DomainsEvent_OperatorTaxCollected + | DomainsEvent_OperatorUnlocked + | DomainsEvent_PreferredOperator + | DomainsEvent_StorageFeeDeposited + | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: number | undefined } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw +export type BalancesEvent = + | BalancesEvent_BalanceSet + | BalancesEvent_Burned + | BalancesEvent_Deposit + | BalancesEvent_DustLost + | BalancesEvent_Endowed + | BalancesEvent_Frozen + | BalancesEvent_Issued + | BalancesEvent_Locked + | BalancesEvent_Minted + | BalancesEvent_Rescinded + | BalancesEvent_ReserveRepatriated + | BalancesEvent_Reserved + | BalancesEvent_Restored + | BalancesEvent_Slashed + | BalancesEvent_Suspended + | BalancesEvent_Thawed + | BalancesEvent_TotalIssuanceForced + | BalancesEvent_Transfer + | BalancesEvent_Unlocked + | BalancesEvent_Unreserved + | BalancesEvent_Upgraded + | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1351,61 +1483,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1413,438 +1545,447 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * The `TotalIssuance` was forcefully changed. */ export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result( + () => sts.unit(), + () => DispatchError, + ), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -1857,300 +1998,305 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result( + () => sts.unit(), + () => DispatchError, +) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( + () => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } -}) + }, +) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -2158,567 +2304,588 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = + sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } -}) + }) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = + sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } -}) + }) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) + blockDigest: BlockDigestProof + newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = + | InvalidBundlesProofData_Bundle + | InvalidBundlesProofData_BundleAndExecution + | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle +export type FraudProofVariant = + | FraudProofVariant_InvalidBlockFees + | FraudProofVariant_InvalidBundles + | FraudProofVariant_InvalidDomainBlockHash + | FraudProofVariant_InvalidExtrinsicsRoot + | FraudProofVariant_InvalidStateTransition + | FraudProofVariant_InvalidTransfers + | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: ConsensusChainMmrLeafProof | undefined + maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } }) export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' + __kind: 'Decrease' } export interface AdjustmentDirection_Increase { - __kind: 'Increase' + __kind: 'Increase' } export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/leaderboard-squid/src/utils/cache.ts b/indexers/leaderboard-squid/src/utils/cache.ts index 530c7ba94..08aabd039 100644 --- a/indexers/leaderboard-squid/src/utils/cache.ts +++ b/indexers/leaderboard-squid/src/utils/cache.ts @@ -1,5 +1,5 @@ -import type { Store } from "@subsquid/typeorm-store"; -import { Entity } from "@subsquid/typeorm-store/src/store"; +import type { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' import { AccountExtrinsicFailedTotalCount, AccountExtrinsicSuccessTotalCount, @@ -25,100 +25,80 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import type { Ctx } from "../processor"; -import { log } from "./index"; +} from '../model' +import type { Ctx } from '../processor' +import { log } from './index' export type CacheEntries = { - farmerVoteTotalCount: Map; - farmerVoteTotalValue: Map; - farmerBlockTotalCount: Map; - farmerBlockTotalValue: Map; - farmerVoteAndBlockTotalCount: Map; - farmerVoteAndBlockTotalValue: Map; + farmerVoteTotalCount: Map + farmerVoteTotalValue: Map + farmerBlockTotalCount: Map + farmerBlockTotalValue: Map + farmerVoteAndBlockTotalCount: Map + farmerVoteAndBlockTotalValue: Map - operatorTotalRewardsCollected: Map; - operatorTotalTaxCollected: Map; - operatorBundleTotalCount: Map; - operatorDepositsTotalCount: Map; - operatorDepositsTotalValue: Map; - operatorWithdrawalsTotalCount: Map; + operatorTotalRewardsCollected: Map + operatorTotalTaxCollected: Map + operatorBundleTotalCount: Map + operatorDepositsTotalCount: Map + operatorDepositsTotalValue: Map + operatorWithdrawalsTotalCount: Map - nominatorDepositsTotalCount: Map; - nominatorDepositsTotalValue: Map; - nominatorWithdrawalsTotalCount: Map; + nominatorDepositsTotalCount: Map + nominatorDepositsTotalValue: Map + nominatorWithdrawalsTotalCount: Map - accountTransferSenderTotalCount: Map; - accountTransferSenderTotalValue: Map; - accountTransferReceiverTotalCount: Map< - string, - AccountTransferReceiverTotalCount - >; - accountTransferReceiverTotalValue: Map< - string, - AccountTransferReceiverTotalValue - >; - accountRemarkCount: Map; + accountTransferSenderTotalCount: Map + accountTransferSenderTotalValue: Map + accountTransferReceiverTotalCount: Map + accountTransferReceiverTotalValue: Map + accountRemarkCount: Map - accountExtrinsicTotalCount: Map; - accountExtrinsicSuccessTotalCount: Map< - string, - AccountExtrinsicSuccessTotalCount - >; - accountExtrinsicFailedTotalCount: Map< - string, - AccountExtrinsicFailedTotalCount - >; - accountTransactionFeePaidTotalValue: Map< - string, - AccountTransactionFeePaidTotalValue - >; -}; + accountExtrinsicTotalCount: Map + accountExtrinsicSuccessTotalCount: Map + accountExtrinsicFailedTotalCount: Map + accountTransactionFeePaidTotalValue: Map +} -export type Cache = CacheEntries & { isModified: boolean }; +export type Cache = CacheEntries & { isModified: boolean } const farmersKeys = [ - "farmerVoteTotalCount", - "farmerVoteTotalValue", - "farmerBlockTotalCount", - "farmerBlockTotalValue", - "farmerVoteAndBlockTotalCount", - "farmerVoteAndBlockTotalValue", -]; + 'farmerVoteTotalCount', + 'farmerVoteTotalValue', + 'farmerBlockTotalCount', + 'farmerBlockTotalValue', + 'farmerVoteAndBlockTotalCount', + 'farmerVoteAndBlockTotalValue', +] const operatorsKeys = [ - "operatorTotalRewardsCollected", - "operatorTotalTaxCollected", - "operatorBundleTotalCount", - "operatorDepositsTotalCount", - "operatorDepositsTotalValue", - "operatorWithdrawalsTotalCount", -]; + 'operatorTotalRewardsCollected', + 'operatorTotalTaxCollected', + 'operatorBundleTotalCount', + 'operatorDepositsTotalCount', + 'operatorDepositsTotalValue', + 'operatorWithdrawalsTotalCount', +] const nominatorsKeys = [ - "nominatorDepositsTotalCount", - "nominatorDepositsTotalValue", - "nominatorWithdrawalsTotalCount", -]; + 'nominatorDepositsTotalCount', + 'nominatorDepositsTotalValue', + 'nominatorWithdrawalsTotalCount', +] const accountsKeys = [ - "accountTransferSenderTotalCount", - "accountTransferSenderTotalValue", - "accountTransferReceiverTotalCount", - "accountTransferReceiverTotalValue", - "accountRemarkCount", - "accountExtrinsicTotalCount", - "accountExtrinsicSuccessTotalCount", - "accountExtrinsicFailedTotalCount", - "accountTransactionFeePaidTotalValue", -]; + 'accountTransferSenderTotalCount', + 'accountTransferSenderTotalValue', + 'accountTransferReceiverTotalCount', + 'accountTransferReceiverTotalValue', + 'accountRemarkCount', + 'accountExtrinsicTotalCount', + 'accountExtrinsicSuccessTotalCount', + 'accountExtrinsicFailedTotalCount', + 'accountTransactionFeePaidTotalValue', +] -const keys = [ - ...farmersKeys, - ...operatorsKeys, - ...nominatorsKeys, - ...accountsKeys, -]; +const keys = [...farmersKeys, ...operatorsKeys, ...nominatorsKeys, ...accountsKeys] export const initCache: Cache = { isModified: false, @@ -126,7 +106,7 @@ export const initCache: Cache = { ...operatorsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), ...nominatorsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), ...accountsKeys.reduce((acc, key) => ({ ...acc, [key]: new Map() }), {}), -} as Cache; +} as Cache export const load = async (ctx: Ctx): Promise => { const [ @@ -143,7 +123,7 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(FarmerBlockTotalValue), ctx.store.find(FarmerVoteAndBlockTotalCount), ctx.store.find(FarmerVoteAndBlockTotalValue), - ]); + ]) const [ operatorTotalRewardsCollected, @@ -159,17 +139,14 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(OperatorDepositsTotalCount), ctx.store.find(OperatorDepositsTotalValue), ctx.store.find(OperatorWithdrawalsTotalCount), - ]); + ]) - const [ - nominatorDepositsTotalCount, - nominatorDepositsTotalValue, - nominatorWithdrawalsTotalCount, - ] = await Promise.all([ - ctx.store.find(NominatorDepositsTotalCount), - ctx.store.find(NominatorDepositsTotalValue), - ctx.store.find(NominatorWithdrawalsTotalCount), - ]); + const [nominatorDepositsTotalCount, nominatorDepositsTotalValue, nominatorWithdrawalsTotalCount] = + await Promise.all([ + ctx.store.find(NominatorDepositsTotalCount), + ctx.store.find(NominatorDepositsTotalValue), + ctx.store.find(NominatorWithdrawalsTotalCount), + ]) const [ accountTransferSenderTotalCount, @@ -191,10 +168,10 @@ export const load = async (ctx: Ctx): Promise => { ctx.store.find(AccountExtrinsicSuccessTotalCount), ctx.store.find(AccountExtrinsicFailedTotalCount), ctx.store.find(AccountTransactionFeePaidTotalValue), - ]); + ]) log( - "\x1b[32mLoading from database:\x1b[0m", + '\x1b[32mLoading from database:\x1b[0m', ( farmerVoteTotalCount.length + farmerVoteTotalValue.length + @@ -220,8 +197,8 @@ export const load = async (ctx: Ctx): Promise => { accountExtrinsicSuccessTotalCount.length + accountExtrinsicFailedTotalCount.length + accountTransactionFeePaidTotalValue.length - ).toString() + " entries" - ); + ).toString() + ' entries', + ) return { ...initCache, @@ -229,112 +206,73 @@ export const load = async (ctx: Ctx): Promise => { farmerVoteTotalValue: new Map(farmerVoteTotalValue.map((a) => [a.id, a])), farmerBlockTotalCount: new Map(farmerBlockTotalCount.map((o) => [o.id, o])), farmerBlockTotalValue: new Map(farmerBlockTotalValue.map((n) => [n.id, n])), - farmerVoteAndBlockTotalCount: new Map( - farmerVoteAndBlockTotalCount.map((o) => [o.id, o]) - ), - farmerVoteAndBlockTotalValue: new Map( - farmerVoteAndBlockTotalValue.map((n) => [n.id, n]) - ), - operatorTotalRewardsCollected: new Map( - operatorTotalRewardsCollected.map((o) => [o.id, o]) - ), - operatorTotalTaxCollected: new Map( - operatorTotalTaxCollected.map((n) => [n.id, n]) - ), - operatorBundleTotalCount: new Map( - operatorBundleTotalCount.map((n) => [n.id, n]) - ), - operatorDepositsTotalCount: new Map( - operatorDepositsTotalCount.map((n) => [n.id, n]) - ), - operatorDepositsTotalValue: new Map( - operatorDepositsTotalValue.map((n) => [n.id, n]) - ), - operatorWithdrawalsTotalCount: new Map( - operatorWithdrawalsTotalCount.map((n) => [n.id, n]) - ), - nominatorDepositsTotalCount: new Map( - nominatorDepositsTotalCount.map((n) => [n.id, n]) - ), - nominatorDepositsTotalValue: new Map( - nominatorDepositsTotalValue.map((n) => [n.id, n]) - ), - nominatorWithdrawalsTotalCount: new Map( - nominatorWithdrawalsTotalCount.map((n) => [n.id, n]) - ), - accountTransferSenderTotalCount: new Map( - accountTransferSenderTotalCount.map((n) => [n.id, n]) - ), - accountTransferSenderTotalValue: new Map( - accountTransferSenderTotalValue.map((n) => [n.id, n]) - ), + farmerVoteAndBlockTotalCount: new Map(farmerVoteAndBlockTotalCount.map((o) => [o.id, o])), + farmerVoteAndBlockTotalValue: new Map(farmerVoteAndBlockTotalValue.map((n) => [n.id, n])), + operatorTotalRewardsCollected: new Map(operatorTotalRewardsCollected.map((o) => [o.id, o])), + operatorTotalTaxCollected: new Map(operatorTotalTaxCollected.map((n) => [n.id, n])), + operatorBundleTotalCount: new Map(operatorBundleTotalCount.map((n) => [n.id, n])), + operatorDepositsTotalCount: new Map(operatorDepositsTotalCount.map((n) => [n.id, n])), + operatorDepositsTotalValue: new Map(operatorDepositsTotalValue.map((n) => [n.id, n])), + operatorWithdrawalsTotalCount: new Map(operatorWithdrawalsTotalCount.map((n) => [n.id, n])), + nominatorDepositsTotalCount: new Map(nominatorDepositsTotalCount.map((n) => [n.id, n])), + nominatorDepositsTotalValue: new Map(nominatorDepositsTotalValue.map((n) => [n.id, n])), + nominatorWithdrawalsTotalCount: new Map(nominatorWithdrawalsTotalCount.map((n) => [n.id, n])), + accountTransferSenderTotalCount: new Map(accountTransferSenderTotalCount.map((n) => [n.id, n])), + accountTransferSenderTotalValue: new Map(accountTransferSenderTotalValue.map((n) => [n.id, n])), accountTransferReceiverTotalCount: new Map( - accountTransferReceiverTotalCount.map((n) => [n.id, n]) + accountTransferReceiverTotalCount.map((n) => [n.id, n]), ), accountTransferReceiverTotalValue: new Map( - accountTransferReceiverTotalValue.map((n) => [n.id, n]) + accountTransferReceiverTotalValue.map((n) => [n.id, n]), ), accountRemarkCount: new Map(accountRemarkCount.map((n) => [n.id, n])), - accountExtrinsicTotalCount: new Map( - accountExtrinsicTotalCount.map((n) => [n.id, n]) - ), + accountExtrinsicTotalCount: new Map(accountExtrinsicTotalCount.map((n) => [n.id, n])), accountExtrinsicSuccessTotalCount: new Map( - accountExtrinsicSuccessTotalCount.map((n) => [n.id, n]) + accountExtrinsicSuccessTotalCount.map((n) => [n.id, n]), ), accountExtrinsicFailedTotalCount: new Map( - accountExtrinsicFailedTotalCount.map((n) => [n.id, n]) + accountExtrinsicFailedTotalCount.map((n) => [n.id, n]), ), accountTransactionFeePaidTotalValue: new Map( - accountTransactionFeePaidTotalValue.map((n) => [n.id, n]) + accountTransactionFeePaidTotalValue.map((n) => [n.id, n]), ), - }; -}; + } +} -const saveEntry = async ( - ctx: Ctx, - cache: Cache, - name: keyof Cache -) => { +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { try { - const entity = cache[name] as unknown as Map; - if (entity.size === 0) return; + const entity = cache[name] as unknown as Map + if (entity.size === 0) return - await ctx.store.save(Array.from(entity.values())); + await ctx.store.save(Array.from(entity.values())) } catch (e) { - console.error(`Failed to save ${name} with error:`, e); + console.error(`Failed to save ${name} with error:`, e) } -}; +} -const logEntry = (name: string, entry: Map) => - entry.size > 0 ? entry.size : 0; +const logEntry = (name: string, entry: Map) => (entry.size > 0 ? entry.size : 0) const logEntries = (cache: Cache, keys: string[]) => { return keys.reduce( - (acc, key) => - logEntry(key, cache[key as keyof CacheEntries] as Map) + - acc, - 0 - ); -}; + (acc, key) => logEntry(key, cache[key as keyof CacheEntries] as Map) + acc, + 0, + ) +} export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving - if (!cache.isModified) return; + if (!cache.isModified) return - log( - "\x1b[34mSaving in database:\x1b[0m", - logEntries(cache, keys).toString(), - "entries\n" - ); + log('\x1b[34mSaving in database:\x1b[0m', logEntries(cache, keys).toString(), 'entries\n') await Promise.all( Object.keys(cache).map((k) => - k !== "isModified" ? saveEntry(ctx, cache, k as keyof Cache) : null - ) - ); + k !== 'isModified' ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) // Clear the cache for entries not needed for reference keys.forEach((key) => { - cache[key as keyof CacheEntries].clear(); - }); -}; + cache[key as keyof CacheEntries].clear() + }) +} diff --git a/indexers/leaderboard-squid/src/utils/index.ts b/indexers/leaderboard-squid/src/utils/index.ts index aacbe3e6d..c42db231b 100644 --- a/indexers/leaderboard-squid/src/utils/index.ts +++ b/indexers/leaderboard-squid/src/utils/index.ts @@ -1,48 +1,44 @@ -import { codec } from "@subsquid/ss58"; -import type { Store } from "@subsquid/typeorm-store"; -import { decodeHex } from "@subsquid/util-internal-hex"; -import type { CtxBlock, ProcessorContext } from "../processor"; +import { codec } from '@subsquid/ss58' +import type { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' -export const hexToAccount = (hex: string): string => - codec(2254).encode(decodeHex(hex)); +export const hexToAccount = (hex: string): string => codec(2254).encode(decodeHex(hex)) export const getCallSigner = ( - call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] -): string => hexToAccount((call as any).origin.value.value); + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], +): string => hexToAccount((call as any).origin.value.value) export const getExtrinsicSigner = ( - extrinsic: ProcessorContext["blocks"][0]["extrinsics"][0] -): string => hexToAccount((extrinsic as any).signature?.address.value); + extrinsic: ProcessorContext['blocks'][0]['extrinsics'][0], +): string => hexToAccount((extrinsic as any).signature?.address.value) export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - !arr ? [item] : [...arr, item]; + !arr ? [item] : [...arr, item] -export const getBlockNumber = (block: CtxBlock): number => block.header.height; +export const getBlockNumber = (block: CtxBlock): number => block.header.height -export const getTimestamp = (block: CtxBlock): Date => - new Date(block.header.timestamp || 0); +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp || 0) -export const domainUID = (domainId: number): string => `${domainId}`; +export const domainUID = (domainId: number): string => `${domainId}` -export const operatorUID = (operatorId: number): string => `${operatorId}`; +export const operatorUID = (operatorId: number): string => `${operatorId}` export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}`; + `${operatorId}-${account}` export const log = (msg: string, ...extra: string[]): void => { - const _msg = Array.isArray(extra) ? msg + " " + extra.join(" ") : msg; - console.log( - process.env.ENABLE_COLOR_LOG ? _msg : _msg.replace(/\x1b\[\d+m/g, "") - ); -}; + const _msg = Array.isArray(extra) ? msg + ' ' + extra.join(' ') : msg + console.log(process.env.ENABLE_COLOR_LOG ? _msg : _msg.replace(/\x1b\[\d+m/g, '')) +} export const logBlock = (blocks: CtxBlock[]): void => { - const from = getBlockNumber(blocks[0]); - const to = getBlockNumber(blocks[blocks.length - 1]); + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) return log( - "\x1b[33mProcessing:\x1b[0m", - blocks.length + " blocks", - "From " + from, - "to " + to + " (" + (to - from) + " blocks)" - ); -}; + '\x1b[33mProcessing:\x1b[0m', + blocks.length + ' blocks', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) +} diff --git a/indexers/leaderboard-squid/src/utils/sort.ts b/indexers/leaderboard-squid/src/utils/sort.ts index 0b68c6acd..a01466124 100644 --- a/indexers/leaderboard-squid/src/utils/sort.ts +++ b/indexers/leaderboard-squid/src/utils/sort.ts @@ -23,267 +23,250 @@ import { OperatorTotalRewardsCollected, OperatorTotalTaxCollected, OperatorWithdrawalsTotalCount, -} from "../model"; -import { Cache } from "./cache"; +} from '../model' +import { Cache } from './cache' export const sort = (cache: Cache): Cache => { // AccountTransferSenderTotalCount - const sortedAccountTransferSenderTotalCount: AccountTransferSenderTotalCount[] = - Array.from(cache.accountTransferSenderTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountTransferSenderTotalCount: AccountTransferSenderTotalCount[] = Array.from( + cache.accountTransferSenderTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountTransferSenderTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountTransferSenderTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferSenderTotalCount.set(n.id, n) + }) // AccountTransferSenderTotalValue - const sortedAccountTransferSenderTotalValue: AccountTransferSenderTotalValue[] = - Array.from(cache.accountTransferSenderTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedAccountTransferSenderTotalValue: AccountTransferSenderTotalValue[] = Array.from( + cache.accountTransferSenderTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedAccountTransferSenderTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransferSenderTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferSenderTotalValue.set(n.id, n) + }) // AccountTransferReceiverTotalCount - const sortedAccountTransferReceiverTotalCount: AccountTransferReceiverTotalCount[] = - Array.from(cache.accountTransferReceiverTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountTransferReceiverTotalCount: AccountTransferReceiverTotalCount[] = Array.from( + cache.accountTransferReceiverTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountTransferReceiverTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountTransferReceiverTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferReceiverTotalCount.set(n.id, n) + }) // AccountTransferReceiverTotalValue - const sortedAccountTransferReceiverTotalValue: AccountTransferReceiverTotalValue[] = - Array.from(cache.accountTransferReceiverTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedAccountTransferReceiverTotalValue: AccountTransferReceiverTotalValue[] = Array.from( + cache.accountTransferReceiverTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedAccountTransferReceiverTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransferReceiverTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransferReceiverTotalValue.set(n.id, n) + }) // AccountRemarkCount const sortedAccountRemarkCount: AccountRemarkCount[] = Array.from( - cache.accountRemarkCount.values() - ).sort((a, b) => b.value - a.value); + cache.accountRemarkCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountRemarkCount.map((n, key) => { - n.rank = key + 1; - cache.accountRemarkCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountRemarkCount.set(n.id, n) + }) // AccountExtrinsicTotalCount - const sortedAccountExtrinsicTotalCount: AccountExtrinsicTotalCount[] = - Array.from(cache.accountExtrinsicTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicTotalCount: AccountExtrinsicTotalCount[] = Array.from( + cache.accountExtrinsicTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicTotalCount.set(n.id, n) + }) // AccountExtrinsicSuccessTotalCount - const sortedAccountExtrinsicSuccessTotalCount: AccountExtrinsicSuccessTotalCount[] = - Array.from(cache.accountExtrinsicSuccessTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicSuccessTotalCount: AccountExtrinsicSuccessTotalCount[] = Array.from( + cache.accountExtrinsicSuccessTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicSuccessTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicSuccessTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicSuccessTotalCount.set(n.id, n) + }) // AccountExtrinsicFailedTotalCount - const sortedAccountExtrinsicFailedTotalCount: AccountExtrinsicFailedTotalCount[] = - Array.from(cache.accountExtrinsicFailedTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedAccountExtrinsicFailedTotalCount: AccountExtrinsicFailedTotalCount[] = Array.from( + cache.accountExtrinsicFailedTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedAccountExtrinsicFailedTotalCount.map((n, key) => { - n.rank = key + 1; - cache.accountExtrinsicFailedTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.accountExtrinsicFailedTotalCount.set(n.id, n) + }) // AccountTransactionFeePaidTotalValue const sortedAccountTransactionFeePaidTotalValue: AccountTransactionFeePaidTotalValue[] = - Array.from(cache.accountTransactionFeePaidTotalValue.values()).sort( - (a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0) - ); + Array.from(cache.accountTransactionFeePaidTotalValue.values()).sort((a, b) => + a.value < b.value ? -1 : a.value > b.value ? 1 : 0, + ) sortedAccountTransactionFeePaidTotalValue.map((n, key) => { - n.rank = key + 1; - cache.accountTransactionFeePaidTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.accountTransactionFeePaidTotalValue.set(n.id, n) + }) // FarmerVoteTotalCount const sortedFarmerVoteTotalCount: FarmerVoteTotalCount[] = Array.from( - cache.farmerVoteTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.farmerVoteTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerVoteTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteTotalCount.set(n.id, n) + }) // FarmerVoteTotalValue const sortedFarmerVoteTotalValue: FarmerVoteTotalValue[] = Array.from( - cache.farmerVoteTotalValue.values() - ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)); + cache.farmerVoteTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerVoteTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteTotalValue.set(n.id, n) + }) // FarmerBlockTotalCount const sortedFarmerBlockTotalCount: FarmerBlockTotalCount[] = Array.from( - cache.farmerBlockTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.farmerBlockTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerBlockTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerBlockTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerBlockTotalCount.set(n.id, n) + }) // FarmerBlockTotalValue const sortedFarmerBlockTotalValue: FarmerBlockTotalValue[] = Array.from( - cache.farmerBlockTotalValue.values() - ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)); + cache.farmerBlockTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerBlockTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerBlockTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerBlockTotalValue.set(n.id, n) + }) // FarmerVoteAndBlockTotalCount - const sortedFarmerVoteAndBlockTotalCount: FarmerVoteAndBlockTotalCount[] = - Array.from(cache.farmerVoteAndBlockTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedFarmerVoteAndBlockTotalCount: FarmerVoteAndBlockTotalCount[] = Array.from( + cache.farmerVoteAndBlockTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedFarmerVoteAndBlockTotalCount.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteAndBlockTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteAndBlockTotalCount.set(n.id, n) + }) // FarmerVoteAndBlockTotalValue - const sortedFarmerVoteAndBlockTotalValue: FarmerVoteAndBlockTotalValue[] = - Array.from(cache.farmerVoteAndBlockTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedFarmerVoteAndBlockTotalValue: FarmerVoteAndBlockTotalValue[] = Array.from( + cache.farmerVoteAndBlockTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedFarmerVoteAndBlockTotalValue.map((n, key) => { - n.rank = key + 1; - cache.farmerVoteAndBlockTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.farmerVoteAndBlockTotalValue.set(n.id, n) + }) // OperatorTotalRewardsCollected - const sortedOperatorTotalRewardsCollected: OperatorTotalRewardsCollected[] = - Array.from(cache.operatorTotalRewardsCollected.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorTotalRewardsCollected: OperatorTotalRewardsCollected[] = Array.from( + cache.operatorTotalRewardsCollected.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorTotalRewardsCollected.map((n, key) => { - n.rank = key + 1; - cache.operatorTotalRewardsCollected.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorTotalRewardsCollected.set(n.id, n) + }) // OperatorTotalTaxCollected - const sortedOperatorTotalTaxCollected: OperatorTotalTaxCollected[] = - Array.from(cache.operatorTotalTaxCollected.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorTotalTaxCollected: OperatorTotalTaxCollected[] = Array.from( + cache.operatorTotalTaxCollected.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorTotalTaxCollected.map((n, key) => { - n.rank = key + 1; - cache.operatorTotalTaxCollected.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorTotalTaxCollected.set(n.id, n) + }) // OperatorBundleTotalCount const sortedOperatorBundleTotalCount: OperatorBundleTotalCount[] = Array.from( - cache.operatorBundleTotalCount.values() - ).sort((a, b) => b.value - a.value); + cache.operatorBundleTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorBundleTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorBundleTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorBundleTotalCount.set(n.id, n) + }) // OperatorDepositsTotalCount - const sortedOperatorDepositsTotalCount: OperatorDepositsTotalCount[] = - Array.from(cache.operatorDepositsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedOperatorDepositsTotalCount: OperatorDepositsTotalCount[] = Array.from( + cache.operatorDepositsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorDepositsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorDepositsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorDepositsTotalCount.set(n.id, n) + }) // OperatorDepositsTotalValue - const sortedOperatorDepositsTotalValue: OperatorDepositsTotalValue[] = - Array.from(cache.operatorDepositsTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedOperatorDepositsTotalValue: OperatorDepositsTotalValue[] = Array.from( + cache.operatorDepositsTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedOperatorDepositsTotalValue.map((n, key) => { - n.rank = key + 1; - cache.operatorDepositsTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorDepositsTotalValue.set(n.id, n) + }) // OperatorWithdrawalsTotalCount - const sortedOperatorWithdrawalsTotalCount: OperatorWithdrawalsTotalCount[] = - Array.from(cache.operatorWithdrawalsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedOperatorWithdrawalsTotalCount: OperatorWithdrawalsTotalCount[] = Array.from( + cache.operatorWithdrawalsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedOperatorWithdrawalsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.operatorWithdrawalsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.operatorWithdrawalsTotalCount.set(n.id, n) + }) // NominatorDepositsTotalCount - const sortedNominatorDepositsTotalCount: NominatorDepositsTotalCount[] = - Array.from(cache.nominatorDepositsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedNominatorDepositsTotalCount: NominatorDepositsTotalCount[] = Array.from( + cache.nominatorDepositsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedNominatorDepositsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.nominatorDepositsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorDepositsTotalCount.set(n.id, n) + }) // NominatorDepositsTotalValue - const sortedNominatorDepositsTotalValue: NominatorDepositsTotalValue[] = - Array.from(cache.nominatorDepositsTotalValue.values()).sort((a, b) => - a.value < b.value ? -1 : a.value > b.value ? 1 : 0 - ); + const sortedNominatorDepositsTotalValue: NominatorDepositsTotalValue[] = Array.from( + cache.nominatorDepositsTotalValue.values(), + ).sort((a, b) => (a.value < b.value ? -1 : a.value > b.value ? 1 : 0)) sortedNominatorDepositsTotalValue.map((n, key) => { - n.rank = key + 1; - cache.nominatorDepositsTotalValue.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorDepositsTotalValue.set(n.id, n) + }) // NominatorWithdrawalsTotalCount - const sortedNominatorWithdrawalsTotalCount: NominatorWithdrawalsTotalCount[] = - Array.from(cache.nominatorWithdrawalsTotalCount.values()).sort( - (a, b) => b.value - a.value - ); + const sortedNominatorWithdrawalsTotalCount: NominatorWithdrawalsTotalCount[] = Array.from( + cache.nominatorWithdrawalsTotalCount.values(), + ).sort((a, b) => b.value - a.value) sortedNominatorWithdrawalsTotalCount.map((n, key) => { - n.rank = key + 1; - cache.nominatorWithdrawalsTotalCount.set(n.id, n); - }); + n.rank = key + 1 + cache.nominatorWithdrawalsTotalCount.set(n.id, n) + }) - return cache; -}; + return cache +} diff --git a/indexers/staking-squid/.prettierrc b/indexers/staking-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/staking-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/staking-squid/package.json b/indexers/staking-squid/package.json index fa924e664..41d16405b 100644 --- a/indexers/staking-squid/package.json +++ b/indexers/staking-squid/package.json @@ -22,7 +22,8 @@ "migration": "sqd migration:generate", "build": "rm -rf lib && tsc", "process": "sqd process", - "deploy": "sqd deploy --org autonomys-labs ." + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,ts,css,md,json}' --config ./.prettierrc" }, "dependencies": { "@autonomys/auto-consensus": "^0.2.0", diff --git a/indexers/staking-squid/src/blocks/index.ts b/indexers/staking-squid/src/blocks/index.ts index 6ca078d75..c17afafda 100644 --- a/indexers/staking-squid/src/blocks/index.ts +++ b/indexers/staking-squid/src/blocks/index.ts @@ -1,20 +1,20 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { Store } from "@subsquid/typeorm-store"; -import { processExtrinsics } from "../extrinsics"; -import type { Ctx, CtxBlock } from "../processor"; -import { logBlock } from "../utils"; -import { Cache, load, save } from "../utils/cache"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { Store } from '@subsquid/typeorm-store' +import { processExtrinsics } from '../extrinsics' +import type { Ctx, CtxBlock } from '../processor' +import { logBlock } from '../utils' +import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { - let cache: Cache = await load(ctx); - logBlock(ctx.blocks); + let cache: Cache = await load(ctx) + logBlock(ctx.blocks) for (let block of ctx.blocks) { - cache = await processBlock(cache, api, block); + cache = await processBlock(cache, api, block) } - await save(ctx, cache); + await save(ctx, cache) } async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processExtrinsics(cache, api, block, block.extrinsics); + return await processExtrinsics(cache, api, block, block.extrinsics) } diff --git a/indexers/staking-squid/src/events/bundle.ts b/indexers/staking-squid/src/events/bundle.ts index 21e23ea0d..55e2a49d2 100644 --- a/indexers/staking-squid/src/events/bundle.ts +++ b/indexers/staking-squid/src/events/bundle.ts @@ -1,4 +1,4 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createBundle, createBundleAuthor, @@ -6,58 +6,55 @@ import { getOrCreateDomain, getOrCreateDomainEpoch, getOrCreateOperator, -} from "../storage"; -import { createDomainBlock } from "../storage/domainBlock"; -import { ExecutionReceipt, SealedBundleHeader } from "../types/v1"; -import { blockUID, bundleUID, getBlockNumber, getTimestamp } from "../utils"; -import { Cache, LastBlockBundleIndexKey } from "../utils/cache"; +} from '../storage' +import { createDomainBlock } from '../storage/domainBlock' +import { ExecutionReceipt, SealedBundleHeader } from '../types/v1' +import { blockUID, bundleUID, getBlockNumber, getTimestamp } from '../utils' +import { Cache, LastBlockBundleIndexKey } from '../utils/cache' export function processBundleStoredEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { domainId, bundleAuthor } = event.args; - const domainIdNum = Number(domainId); - const operatorId = Number(bundleAuthor); + const { domainId, bundleAuthor } = event.args + const domainIdNum = Number(domainId) + const operatorId = Number(bundleAuthor) - const sealedHeader = extrinsic.call?.args.opaqueBundle - .sealedHeader as SealedBundleHeader; - const domain = getOrCreateDomain(cache, block, domainIdNum); - const operator = getOrCreateOperator(cache, block, operatorId); - const account = getOrCreateAccount(cache, block, operator.accountId); + const sealedHeader = extrinsic.call?.args.opaqueBundle.sealedHeader as SealedBundleHeader + const domain = getOrCreateDomain(cache, block, domainIdNum) + const operator = getOrCreateOperator(cache, block, operatorId) + const account = getOrCreateAccount(cache, block, operator.accountId) - const receipt = sealedHeader.header.receipt as ExecutionReceipt; - const { transfers } = receipt; + const receipt = sealedHeader.header.receipt as ExecutionReceipt + const { transfers } = receipt const totalTransfersIn = transfers.transfersIn.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersInCount = transfers.transfersIn.length; + BigInt(0), + ) + const transfersInCount = transfers.transfersIn.length const totalTransfersOut = transfers.transfersOut.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersOutCount = transfers.transfersOut.length; + BigInt(0), + ) + const transfersOutCount = transfers.transfersOut.length - const totalRejectedTransfersClaimed = - transfers.rejectedTransfersClaimed.reduce( - (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const rejectedTransfersClaimedCount = - transfers.rejectedTransfersClaimed.length; + const totalRejectedTransfersClaimed = transfers.rejectedTransfersClaimed.reduce( + (acc, [, amount]) => acc + BigInt(amount), + BigInt(0), + ) + const rejectedTransfersClaimedCount = transfers.rejectedTransfersClaimed.length const totalTransfersRejected = transfers.transfersRejected.reduce( (acc, [, amount]) => acc + BigInt(amount), - BigInt(0) - ); - const transfersRejectedCount = transfers.transfersRejected.length; + BigInt(0), + ) + const transfersRejectedCount = transfers.transfersRejected.length - const totalVolume = totalTransfersIn + totalTransfersOut; + const totalVolume = totalTransfersIn + totalTransfersOut const { domainBlockNumber, @@ -66,98 +63,68 @@ export function processBundleStoredEvent( consensusBlockNumber, consensusBlockHash, blockFees, - } = receipt; - - const keyIdLastBlockBundleIndex: LastBlockBundleIndexKey = `lastBlockBundleIndex:${domainId}-${domainBlockHash}`; - const lastBlockBundleIndex = cache.internalKeyStore.get( - keyIdLastBlockBundleIndex - ); - const blockBundleIndex = lastBlockBundleIndex - ? parseInt(lastBlockBundleIndex) + 1 - : 0; - cache.internalKeyStore.set( - keyIdLastBlockBundleIndex, - blockBundleIndex.toString() - ); - - const domainEpoch = getOrCreateDomainEpoch( - cache, - block, - domainId, - domain.completedEpoch, - { - blockNumberStart: Number(domainBlockNumber), - timestampStart: getTimestamp(block), - consensusBlockNumberStart: getBlockNumber(block), - consensusBlockHashStart: block.header.hash, - } - ); - domainEpoch.blockNumberEnd = Number(domainBlockNumber); - domainEpoch.timestampEnd = getTimestamp(block); - domainEpoch.consensusBlockNumberEnd = getBlockNumber(block); - domainEpoch.consensusBlockHashEnd = block.header.hash; - domainEpoch.blockCount = - domainEpoch.blockNumberEnd - domainEpoch.blockNumberStart + 1; + } = receipt + + const keyIdLastBlockBundleIndex: LastBlockBundleIndexKey = `lastBlockBundleIndex:${domainId}-${domainBlockHash}` + const lastBlockBundleIndex = cache.internalKeyStore.get(keyIdLastBlockBundleIndex) + const blockBundleIndex = lastBlockBundleIndex ? parseInt(lastBlockBundleIndex) + 1 : 0 + cache.internalKeyStore.set(keyIdLastBlockBundleIndex, blockBundleIndex.toString()) + + const domainEpoch = getOrCreateDomainEpoch(cache, block, domainId, domain.completedEpoch, { + blockNumberStart: Number(domainBlockNumber), + timestampStart: getTimestamp(block), + consensusBlockNumberStart: getBlockNumber(block), + consensusBlockHashStart: block.header.hash, + }) + domainEpoch.blockNumberEnd = Number(domainBlockNumber) + domainEpoch.timestampEnd = getTimestamp(block) + domainEpoch.consensusBlockNumberEnd = getBlockNumber(block) + domainEpoch.consensusBlockHashEnd = block.header.hash + domainEpoch.blockCount = domainEpoch.blockNumberEnd - domainEpoch.blockNumberStart + 1 domainEpoch.epochDuration = BigInt( - domainEpoch.timestampEnd.getTime() - domainEpoch.timestampStart.getTime() - ); - domainEpoch.updatedAt = getBlockNumber(block); + domainEpoch.timestampEnd.getTime() - domainEpoch.timestampStart.getTime(), + ) + domainEpoch.updatedAt = getBlockNumber(block) - cache.domainEpochs.set(domainEpoch.id, domainEpoch); + cache.domainEpochs.set(domainEpoch.id, domainEpoch) - let bundle = cache.bundles.get( - bundleUID(domainId, domainBlockHash, blockBundleIndex) - ); - let domainBlock = cache.domainBlocks.get( - blockUID(domainId, domainBlockNumber) - ); + let bundle = cache.bundles.get(bundleUID(domainId, domainBlockHash, blockBundleIndex)) + let domainBlock = cache.domainBlocks.get(blockUID(domainId, domainBlockNumber)) if (!domainBlock) { - domainBlock = createDomainBlock( - block, - domainId, - domainBlockNumber, - domainBlockHash, - { - domainEpochId: domainEpoch.id, - extrinsicRoot: domainBlockExtrinsicRoot, - epoch: domain.completedEpoch, - consensusBlockNumber: Number(consensusBlockNumber), - consensusBlockHash, - } - ); - cache.domainBlocks.set(domainBlock.id, domainBlock); + domainBlock = createDomainBlock(block, domainId, domainBlockNumber, domainBlockHash, { + domainEpochId: domainEpoch.id, + extrinsicRoot: domainBlockExtrinsicRoot, + epoch: domain.completedEpoch, + consensusBlockNumber: Number(consensusBlockNumber), + consensusBlockHash, + }) + cache.domainBlocks.set(domainBlock.id, domainBlock) } if (!bundle) { - bundle = createBundle( - domain.id, - domainBlock.id, + bundle = createBundle(domain.id, domainBlock.id, domainBlockHash, blockBundleIndex, { + domainBlockId: domainBlock.id, + domainEpochId: domainEpoch.id, + domainBlockNumber: Number(domainBlockNumber), domainBlockHash, - blockBundleIndex, - { - domainBlockId: domainBlock.id, - domainEpochId: domainEpoch.id, - domainBlockNumber: Number(domainBlockNumber), - domainBlockHash, - domainBlockExtrinsicRoot, - epoch: domain.completedEpoch, - consensusBlockNumber: Number(consensusBlockNumber), - consensusBlockHash, - totalTransfersIn, - transfersInCount, - totalTransfersOut, - transfersOutCount, - totalRejectedTransfersClaimed, - rejectedTransfersClaimedCount, - totalTransfersRejected, - transfersRejectedCount, - totalVolume, - consensusStorageFee: BigInt(blockFees.consensusStorageFee), - domainExecutionFee: BigInt(blockFees.domainExecutionFee), - burnedBalance: BigInt(blockFees.burnedBalance), - } - ); - cache.bundles.set(bundle.id, bundle); + domainBlockExtrinsicRoot, + epoch: domain.completedEpoch, + consensusBlockNumber: Number(consensusBlockNumber), + consensusBlockHash, + totalTransfersIn, + transfersInCount, + totalTransfersOut, + transfersOutCount, + totalRejectedTransfersClaimed, + rejectedTransfersClaimedCount, + totalTransfersRejected, + transfersRejectedCount, + totalVolume, + consensusStorageFee: BigInt(blockFees.consensusStorageFee), + domainExecutionFee: BigInt(blockFees.domainExecutionFee), + burnedBalance: BigInt(blockFees.burnedBalance), + }) + cache.bundles.set(bundle.id, bundle) const bundleAuthor = createBundleAuthor( domain.id, @@ -168,89 +135,70 @@ export function processBundleStoredEvent( domain.completedEpoch, { domainEpochId: domainEpoch.id, - } - ); - cache.bundleAuthors.set(bundleAuthor.id, bundleAuthor); - - domain.lastDomainBlockNumber = Number(domainBlockNumber); - domain.totalTransfersIn += totalTransfersIn; - domain.transfersInCount += transfersInCount; - domain.totalTransfersOut += totalTransfersOut; - domain.transfersOutCount += transfersOutCount; - domain.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed; - domain.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount; - domain.totalTransfersRejected += totalTransfersRejected; - domain.transfersRejectedCount += transfersRejectedCount; - domain.totalVolume += totalVolume; - domain.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee); - domain.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee); - domain.totalBurnedBalance += BigInt(blockFees.burnedBalance); - domain.bundleCount++; - domain.lastBundleAt = getBlockNumber(block); - domain.updatedAt = getBlockNumber(block); - - const currentEpochDuration = domainEpoch.epochDuration; - const lastEpochDuration = calculateLastNEpochsDuration(cache, domainId, 1); - const last6EpochsDuration = calculateLastNEpochsDuration( - cache, - domainId, - 6 - ); - const last144EpochDuration = calculateLastNEpochsDuration( - cache, - domainId, - 144 - ); - const last1kEpochDuration = calculateLastNEpochsDuration( - cache, - domainId, - 1000 - ); - - domain.currentEpochDuration = currentEpochDuration; - domain.lastEpochDuration = lastEpochDuration; - domain.last6EpochsDuration = last6EpochsDuration; - domain.last144EpochDuration = last144EpochDuration; - domain.last1kEpochDuration = last1kEpochDuration; - - cache.domains.set(domain.id, domain); + }, + ) + cache.bundleAuthors.set(bundleAuthor.id, bundleAuthor) + + domain.lastDomainBlockNumber = Number(domainBlockNumber) + domain.totalTransfersIn += totalTransfersIn + domain.transfersInCount += transfersInCount + domain.totalTransfersOut += totalTransfersOut + domain.transfersOutCount += transfersOutCount + domain.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed + domain.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount + domain.totalTransfersRejected += totalTransfersRejected + domain.transfersRejectedCount += transfersRejectedCount + domain.totalVolume += totalVolume + domain.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee) + domain.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee) + domain.totalBurnedBalance += BigInt(blockFees.burnedBalance) + domain.bundleCount++ + domain.lastBundleAt = getBlockNumber(block) + domain.updatedAt = getBlockNumber(block) + + const currentEpochDuration = domainEpoch.epochDuration + const lastEpochDuration = calculateLastNEpochsDuration(cache, domainId, 1) + const last6EpochsDuration = calculateLastNEpochsDuration(cache, domainId, 6) + const last144EpochDuration = calculateLastNEpochsDuration(cache, domainId, 144) + const last1kEpochDuration = calculateLastNEpochsDuration(cache, domainId, 1000) + + domain.currentEpochDuration = currentEpochDuration + domain.lastEpochDuration = lastEpochDuration + domain.last6EpochsDuration = last6EpochsDuration + domain.last144EpochDuration = last144EpochDuration + domain.last1kEpochDuration = last1kEpochDuration + + cache.domains.set(domain.id, domain) } - operator.totalTransfersIn += totalTransfersIn; - operator.transfersInCount += transfersInCount; - operator.totalTransfersOut += totalTransfersOut; - operator.transfersOutCount += transfersOutCount; - operator.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed; - operator.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount; - operator.totalTransfersRejected += totalTransfersRejected; - operator.transfersRejectedCount += transfersRejectedCount; - operator.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee); - operator.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee); - operator.totalBurnedBalance += BigInt(blockFees.burnedBalance); - operator.totalVolume += totalVolume; - operator.bundleCount++; - operator.lastBundleAt = getBlockNumber(block); - operator.updatedAt = getBlockNumber(block); - - cache.operators.set(operator.id, operator); - - cache.isModified = true; - - return cache; + operator.totalTransfersIn += totalTransfersIn + operator.transfersInCount += transfersInCount + operator.totalTransfersOut += totalTransfersOut + operator.transfersOutCount += transfersOutCount + operator.totalRejectedTransfersClaimed += totalRejectedTransfersClaimed + operator.rejectedTransfersClaimedCount += rejectedTransfersClaimedCount + operator.totalTransfersRejected += totalTransfersRejected + operator.transfersRejectedCount += transfersRejectedCount + operator.totalConsensusStorageFee += BigInt(blockFees.consensusStorageFee) + operator.totalDomainExecutionFee += BigInt(blockFees.domainExecutionFee) + operator.totalBurnedBalance += BigInt(blockFees.burnedBalance) + operator.totalVolume += totalVolume + operator.bundleCount++ + operator.lastBundleAt = getBlockNumber(block) + operator.updatedAt = getBlockNumber(block) + + cache.operators.set(operator.id, operator) + + cache.isModified = true + + return cache } // Helper function to calculate the duration of the last N epochs -function calculateLastNEpochsDuration( - cache: Cache, - domainId: string, - n: number -): bigint { +function calculateLastNEpochsDuration(cache: Cache, domainId: string, n: number): bigint { const domainEpochs = Array.from(cache.domainEpochs.values()).filter( - (epoch) => epoch.domainId === domainId - ); - const lastNEpochs = domainEpochs.slice(-n - 1, -1); - return lastNEpochs.reduce( - (acc, epoch) => acc + BigInt(epoch.epochDuration), - BigInt(0) - ); + (epoch) => epoch.domainId === domainId, + ) + const lastNEpochs = domainEpochs.slice(-n - 1, -1) + return lastNEpochs.reduce((acc, epoch) => acc + BigInt(epoch.epochDuration), BigInt(0)) } diff --git a/indexers/staking-squid/src/events/domain.ts b/indexers/staking-squid/src/events/domain.ts index 2b8200002..edde46e75 100644 --- a/indexers/staking-squid/src/events/domain.ts +++ b/indexers/staking-squid/src/events/domain.ts @@ -1,22 +1,18 @@ -import type { CtxBlock, CtxEvent } from "../processor"; -import { getOrCreateDomain } from "../storage"; -import { Cache } from "../utils/cache"; +import type { CtxBlock, CtxEvent } from '../processor' +import { getOrCreateDomain } from '../storage' +import { Cache } from '../utils/cache' -export function processDomainInstantiatedEvent( - cache: Cache, - block: CtxBlock, - event: CtxEvent -) { - const { domainId, completedEpochIndex } = event.args; - const completedEpoch = Number(completedEpochIndex ?? 0); +export function processDomainInstantiatedEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const { domainId, completedEpochIndex } = event.args + const completedEpoch = Number(completedEpochIndex ?? 0) const domain = getOrCreateDomain(cache, block, domainId, { completedEpoch, - }); + }) - cache.domains.set(domain.id, domain); + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/epoch.ts b/indexers/staking-squid/src/events/epoch.ts index a37c1f8cb..d35ebed79 100644 --- a/indexers/staking-squid/src/events/epoch.ts +++ b/indexers/staking-squid/src/events/epoch.ts @@ -1,9 +1,5 @@ -import { - operators as getOperators, - parseDeposit, - parseWithdrawal, -} from "@autonomys/auto-consensus"; -import type { ApiPromise } from "@autonomys/auto-utils"; +import { operators as getOperators, parseDeposit, parseWithdrawal } from '@autonomys/auto-consensus' +import type { ApiPromise } from '@autonomys/auto-utils' import { DepositStatus, DomainRuntime, @@ -12,8 +8,8 @@ import { OperatorPendingAction, OperatorStatus, WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createStats, createStatsPerAccount, @@ -24,83 +20,81 @@ import { getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { getBlockNumber, SHARES_CALCULATION_MULTIPLIER } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' export async function processEpochTransitionEvent( cache: Cache, api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { domainId, completedEpochIndex } = event.args; - const domain = getOrCreateDomain(cache, block, domainId); - const completedEpoch = Number(completedEpochIndex); - const currentBlockNumber = getBlockNumber(block); + const { domainId, completedEpochIndex } = event.args + const domain = getOrCreateDomain(cache, block, domainId) + const completedEpoch = Number(completedEpochIndex) + const currentBlockNumber = getBlockNumber(block) - const apiAt = await api.at(block.header.hash); + const apiAt = await api.at(block.header.hash) const [domainRegistry, operatorsAll] = await Promise.all([ apiAt.query.domains.domainRegistry.entries(), getOperators(apiAt), - ]); + ]) const parsedDomains = domainRegistry.map((domain) => ({ domainId: (domain[0].toHuman() as string[])[0], ...(domain[1].toJSON() as Omit< { - domainId: string; - ownerAccountId: string; + domainId: string + ownerAccountId: string domainConfig: { - domainName: string; - runtimeId: number; + domainName: string + runtimeId: number operatorAllowList: { - operators: string[]; - }; - }; - domainRuntimeInfo: object; + operators: string[] + } + } + domainRuntimeInfo: object }, - "domainId" + 'domainId' >), - })); + })) const deposits = await Promise.all( - operatorsAll.map((o) => apiAt.query.domains.deposits.entries(o.operatorId)) - ).then((d) => d.flat().map((d) => parseDeposit(d))); + operatorsAll.map((o) => apiAt.query.domains.deposits.entries(o.operatorId)), + ).then((d) => d.flat().map((d) => parseDeposit(d))) const withdrawals = await Promise.all( - operatorsAll.map((o) => - apiAt.query.domains.withdrawals.entries(o.operatorId) - ) - ).then((w) => w.flat().map((w) => parseWithdrawal(w))); + operatorsAll.map((o) => apiAt.query.domains.withdrawals.entries(o.operatorId)), + ).then((w) => w.flat().map((w) => parseWithdrawal(w))) const allOperators = operatorsAll.filter( - (o) => o.operatorDetails.currentDomainId === BigInt(domainId) - ); + (o) => o.operatorDetails.currentDomainId === BigInt(domainId), + ) for (const pDomain of parsedDomains) { - const accountId = pDomain.ownerAccountId; - const _domain = getOrCreateDomain(cache, block, Number(pDomain.domainId)); + const accountId = pDomain.ownerAccountId + const _domain = getOrCreateDomain(cache, block, Number(pDomain.domainId)) - cache.accounts.set(accountId, getOrCreateAccount(cache, block, accountId)); + cache.accounts.set(accountId, getOrCreateAccount(cache, block, accountId)) - _domain.accountId = accountId; - _domain.name = pDomain.domainConfig.domainName; - _domain.runtimeId = pDomain.domainConfig.runtimeId; + _domain.accountId = accountId + _domain.name = pDomain.domainConfig.domainName + _domain.runtimeId = pDomain.domainConfig.runtimeId - const stringifiedRuntime = JSON.stringify(pDomain.domainRuntimeInfo); - _domain.runtime = stringifiedRuntime.includes("AutoId") + const stringifiedRuntime = JSON.stringify(pDomain.domainRuntimeInfo) + _domain.runtime = stringifiedRuntime.includes('AutoId') ? DomainRuntime.AutoId - : DomainRuntime.EVM; - _domain.runtimeInfo = stringifiedRuntime; - _domain.updatedAt = currentBlockNumber; + : DomainRuntime.EVM + _domain.runtimeInfo = stringifiedRuntime + _domain.updatedAt = currentBlockNumber - cache.domains.set(_domain.id, _domain); + cache.domains.set(_domain.id, _domain) } for (const operator of allOperators) { - const op = getOrCreateOperator(cache, block, Number(operator.operatorId)); + const op = getOrCreateOperator(cache, block, Number(operator.operatorId)) const { currentEpochRewards, @@ -108,195 +102,161 @@ export async function processEpochTransitionEvent( currentTotalStake, totalStorageFeeDeposit, status, - } = operator.operatorDetails; + } = operator.operatorDetails - const rawStatus = JSON.stringify(status); - op.currentEpochRewards = currentEpochRewards; - op.currentTotalShares = currentTotalShares; - op.currentTotalStake = currentTotalStake; - op.currentStorageFeeDeposit = totalStorageFeeDeposit; - op.rawStatus = rawStatus; - op.updatedAt = currentBlockNumber; + const rawStatus = JSON.stringify(status) + op.currentEpochRewards = currentEpochRewards + op.currentTotalShares = currentTotalShares + op.currentTotalStake = currentTotalStake + op.currentStorageFeeDeposit = totalStorageFeeDeposit + op.rawStatus = rawStatus + op.updatedAt = currentBlockNumber op.currentSharePrice = op.currentTotalShares > BigInt(0) - ? (op.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / - op.currentTotalShares - : BigInt(0); + ? (op.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / op.currentTotalShares + : BigInt(0) - op.accumulatedEpochRewards += op.currentEpochRewards; - op.accumulatedEpochStake += op.currentTotalStake; - op.accumulatedEpochStorageFeeDeposit += op.currentStorageFeeDeposit; - op.accumulatedEpochShares += op.currentTotalShares; + op.accumulatedEpochRewards += op.currentEpochRewards + op.accumulatedEpochStake += op.currentTotalStake + op.accumulatedEpochStorageFeeDeposit += op.currentStorageFeeDeposit + op.accumulatedEpochShares += op.currentTotalShares - cache.operators.set(op.id, op); + cache.operators.set(op.id, op) try { const _status = JSON.parse(rawStatus) as { - registered?: null; + registered?: null deregistered?: { - domainEpoch: [number, number]; - unlockAtConfirmedDomainBlockNumber: number; - }; - }; + domainEpoch: [number, number] + unlockAtConfirmedDomainBlockNumber: number + } + } if ( _status.deregistered && - _status.deregistered.unlockAtConfirmedDomainBlockNumber <= - domain.lastDomainBlockNumber + _status.deregistered.unlockAtConfirmedDomainBlockNumber <= domain.lastDomainBlockNumber ) { - op.status = OperatorStatus.DEREGISTERED; - op.pendingAction = OperatorPendingAction.READY_FOR_UNLOCK_NOMINATOR; - cache.operators.set(op.id, op); + op.status = OperatorStatus.DEREGISTERED + op.pendingAction = OperatorPendingAction.READY_FOR_UNLOCK_NOMINATOR + cache.operators.set(op.id, op) Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.PENDING || - n.status === NominatorStatus.STAKED) && - n.operatorId === op.id + (n.status === NominatorStatus.PENDING || n.status === NominatorStatus.STAKED) && + n.operatorId === op.id, ) .forEach((n) => { - n.status = NominatorStatus.PENDING; - n.pendingAction = - NominatorPendingAction.PENDING_DEREGISTRATION_LOCK; - n.updatedAt = currentBlockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.PENDING + n.pendingAction = NominatorPendingAction.PENDING_DEREGISTRATION_LOCK + n.updatedAt = currentBlockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) - .filter( - (w) => - w.status === WithdrawalStatus.PENDING_LOCK && - w.domainId === domain.id - ) + .filter((w) => w.status === WithdrawalStatus.PENDING_LOCK && w.domainId === domain.id) .forEach((w) => { - w.status = WithdrawalStatus.PENDING_OPERATOR; - w.updatedAt = currentBlockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.PENDING_OPERATOR + w.updatedAt = currentBlockNumber + cache.withdrawals.set(w.id, w) + }) } } catch (e) { - console.error( - "Error parsing operator status in processEpochTransitionEvent", - e - ); + console.error('Error parsing operator status in processEpochTransitionEvent', e) } } - domain.currentTotalStake = BigInt(0); - domain.currentStorageFeeDeposit = BigInt(0); - domain.accumulatedEpochStake = BigInt(0); - domain.accumulatedEpochStorageFeeDeposit = BigInt(0); + domain.currentTotalStake = BigInt(0) + domain.currentStorageFeeDeposit = BigInt(0) + domain.accumulatedEpochStake = BigInt(0) + domain.accumulatedEpochStorageFeeDeposit = BigInt(0) allOperators.forEach((o) => { - domain.currentTotalStake += o.operatorDetails.currentTotalStake; - domain.currentStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit; - domain.accumulatedEpochStake += o.operatorDetails.currentTotalStake; - domain.accumulatedEpochStorageFeeDeposit += - o.operatorDetails.totalStorageFeeDeposit; - }); + domain.currentTotalStake += o.operatorDetails.currentTotalStake + domain.currentStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit + domain.accumulatedEpochStake += o.operatorDetails.currentTotalStake + domain.accumulatedEpochStorageFeeDeposit += o.operatorDetails.totalStorageFeeDeposit + }) - domain.completedEpoch = completedEpoch; - domain.updatedAt = currentBlockNumber; + domain.completedEpoch = completedEpoch + domain.updatedAt = currentBlockNumber - cache.domains.set(domain.id, domain); + cache.domains.set(domain.id, domain) Array.from(cache.operators.values()) - .filter( - (o) => o.status === OperatorStatus.REGISTERED && o.domainId === domain.id - ) + .filter((o) => o.status === OperatorStatus.REGISTERED && o.domainId === domain.id) .forEach((o) => { - o.activeEpochCount++; - o.updatedAt = currentBlockNumber; - cache.operators.set(o.id, o); - }); + o.activeEpochCount++ + o.updatedAt = currentBlockNumber + cache.operators.set(o.id, o) + }) Array.from(cache.operators.values()) - .filter( - (o) => o.status === OperatorStatus.PENDING && o.domainId === domain.id - ) + .filter((o) => o.status === OperatorStatus.PENDING && o.domainId === domain.id) .forEach((o) => { - o.status = OperatorStatus.REGISTERED; - o.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED; - o.updatedAt = currentBlockNumber; - cache.operators.set(o.id, o); - }); + o.status = OperatorStatus.REGISTERED + o.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED + o.updatedAt = currentBlockNumber + cache.operators.set(o.id, o) + }) Array.from(cache.nominators.values()) - .filter( - (n) => n.status === NominatorStatus.PENDING && n.domainId === domain.id - ) + .filter((n) => n.status === NominatorStatus.PENDING && n.domainId === domain.id) .forEach((n) => { - n.status = NominatorStatus.STAKED; - n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED; - n.updatedAt = currentBlockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.STAKED + n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED + n.updatedAt = currentBlockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.deposits.values()) - .filter( - (d) => d.status === DepositStatus.PENDING && d.domainId === domain.id - ) + .filter((d) => d.status === DepositStatus.PENDING && d.domainId === domain.id) .forEach((d) => { - d.status = DepositStatus.DEPOSITED; - d.stakedAt = currentBlockNumber; - d.updatedAt = currentBlockNumber; - cache.deposits.set(d.id, d); - }); + d.status = DepositStatus.DEPOSITED + d.stakedAt = currentBlockNumber + d.updatedAt = currentBlockNumber + cache.deposits.set(d.id, d) + }) // Stats on epoch transition - const stats = createStats(cache, block); - cache.stats.set(stats.id, stats); + const stats = createStats(cache, block) + cache.stats.set(stats.id, stats) - const statsPerDomain = createStatsPerDomain(cache, block, domain); - cache.statsPerDomain.set(statsPerDomain.id, statsPerDomain); + const statsPerDomain = createStatsPerDomain(cache, block, domain) + cache.statsPerDomain.set(statsPerDomain.id, statsPerDomain) const operators = Array.from(cache.operators.values()).filter( (o) => o.domainId === domain.id && - (o.status === OperatorStatus.REGISTERED || - o.status === OperatorStatus.DEREGISTERED) - ); + (o.status === OperatorStatus.REGISTERED || o.status === OperatorStatus.DEREGISTERED), + ) for (const operator of operators) { - const statsPerOperator = createStatsPerOperator( - cache, - block, - domain, - operator - ); - cache.statsPerOperator.set(statsPerOperator.id, statsPerOperator); + const statsPerOperator = createStatsPerOperator(cache, block, domain, operator) + cache.statsPerOperator.set(statsPerOperator.id, statsPerOperator) const nominators = Array.from(cache.nominators.values()).filter( - (n) => n.operatorId === operator.id - ); + (n) => n.operatorId === operator.id, + ) for (const nominator of nominators) { - const statsPerNominator = createStatsPerNominator( - cache, - block, - domain, - operator, - nominator - ); - cache.statsPerNominator.set(statsPerNominator.id, statsPerNominator); - - const account = getOrCreateAccount(cache, block, nominator.accountId); - const statsPerAccount = createStatsPerAccount(cache, block, account); - cache.statsPerAccount.set(statsPerAccount.id, statsPerAccount); + const statsPerNominator = createStatsPerNominator(cache, block, domain, operator, nominator) + cache.statsPerNominator.set(statsPerNominator.id, statsPerNominator) + + const account = getOrCreateAccount(cache, block, nominator.accountId) + const statsPerAccount = createStatsPerAccount(cache, block, account) + cache.statsPerAccount.set(statsPerAccount.id, statsPerAccount) } } - const operatorsIds = allOperators.map((o) => o.operatorId.toString()); + const operatorsIds = allOperators.map((o) => o.operatorId.toString()) // Process all rpc chain deposits (ala nominators) - const allDeposits = deposits.filter((o) => - operatorsIds.includes(o.operatorId.toString()) - ); + const allDeposits = deposits.filter((o) => operatorsIds.includes(o.operatorId.toString())) for (const deposit of allDeposits) { - const operator = getOrCreateOperator(cache, block, deposit.operatorId); - const account = getOrCreateAccount(cache, block, deposit.account); + const operator = getOrCreateOperator(cache, block, deposit.operatorId) + const account = getOrCreateAccount(cache, block, deposit.account) const nominator = getOrCreateNominator( cache, block, @@ -307,60 +267,51 @@ export async function processEpochTransitionEvent( domainId: operator.domainId, operatorId: operator.id, }, - deposit.account - ); - nominator.knownShares = deposit.known.shares ?? BigInt(0); - nominator.knownStorageFeeDeposit = - deposit.known.storageFeeDeposit ?? BigInt(0); - nominator.pendingAmount = deposit.pending?.amount ?? BigInt(0); - nominator.pendingStorageFeeDeposit = - deposit.pending?.storageFeeDeposit ?? BigInt(0); - nominator.pendingEffectiveDomainEpoch = - deposit.pending?.effectiveDomainEpoch ?? 0; - - nominator.currentTotalStake = - nominator.knownShares * operator.currentSharePrice; + deposit.account, + ) + nominator.knownShares = deposit.known.shares ?? BigInt(0) + nominator.knownStorageFeeDeposit = deposit.known.storageFeeDeposit ?? BigInt(0) + nominator.pendingAmount = deposit.pending?.amount ?? BigInt(0) + nominator.pendingStorageFeeDeposit = deposit.pending?.storageFeeDeposit ?? BigInt(0) + nominator.pendingEffectiveDomainEpoch = deposit.pending?.effectiveDomainEpoch ?? 0 + + nominator.currentTotalStake = nominator.knownShares * operator.currentSharePrice nominator.currentStorageFeeDeposit = - nominator.knownStorageFeeDeposit + nominator.pendingStorageFeeDeposit; - nominator.currentTotalShares = nominator.knownShares; - nominator.currentSharePrice = operator.currentSharePrice; + nominator.knownStorageFeeDeposit + nominator.pendingStorageFeeDeposit + nominator.currentTotalShares = nominator.knownShares + nominator.currentSharePrice = operator.currentSharePrice - nominator.accumulatedEpochStake += nominator.currentTotalStake; - nominator.accumulatedEpochStorageFeeDeposit += - nominator.currentStorageFeeDeposit; - nominator.accumulatedEpochShares += nominator.currentTotalShares; - nominator.activeEpochCount++; + nominator.accumulatedEpochStake += nominator.currentTotalStake + nominator.accumulatedEpochStorageFeeDeposit += nominator.currentStorageFeeDeposit + nominator.accumulatedEpochShares += nominator.currentTotalShares + nominator.activeEpochCount++ - nominator.updatedAt = currentBlockNumber; + nominator.updatedAt = currentBlockNumber - cache.nominators.set(nominator.id, nominator); + cache.nominators.set(nominator.id, nominator) - account.currentTotalStake += nominator.currentTotalStake; - account.currentStorageFeeDeposit += nominator.currentStorageFeeDeposit; - account.currentTotalShares += nominator.currentTotalShares; + account.currentTotalStake += nominator.currentTotalStake + account.currentStorageFeeDeposit += nominator.currentStorageFeeDeposit + account.currentTotalShares += nominator.currentTotalShares account.currentSharePrice = account.currentTotalStake > BigInt(0) - ? (account.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / - account.currentTotalShares - : BigInt(0); + ? (account.currentTotalStake * SHARES_CALCULATION_MULTIPLIER) / account.currentTotalShares + : BigInt(0) - account.accumulatedEpochStake += nominator.currentTotalStake; - account.accumulatedEpochStorageFeeDeposit += - nominator.currentStorageFeeDeposit; - account.accumulatedEpochShares += nominator.currentTotalShares; + account.accumulatedEpochStake += nominator.currentTotalStake + account.accumulatedEpochStorageFeeDeposit += nominator.currentStorageFeeDeposit + account.accumulatedEpochShares += nominator.currentTotalShares - account.updatedAt = currentBlockNumber; + account.updatedAt = currentBlockNumber - cache.accounts.set(account.id, account); + cache.accounts.set(account.id, account) } // Process all rpc chain withdrawals - const allWithdrawals = withdrawals.filter((o) => - operatorsIds.includes(o.operatorId.toString()) - ); + const allWithdrawals = withdrawals.filter((o) => operatorsIds.includes(o.operatorId.toString())) for (const withdrawal of allWithdrawals) { - const operator = getOrCreateOperator(cache, block, withdrawal.operatorId); + const operator = getOrCreateOperator(cache, block, withdrawal.operatorId) const nominator = getOrCreateNominator( cache, block, @@ -371,42 +322,35 @@ export async function processEpochTransitionEvent( domainId: operator.domainId, operatorId: operator.id, }, - withdrawal.account - ); - nominator.totalWithdrawalAmounts = - withdrawal.totalWithdrawalAmount ?? BigInt(0); + withdrawal.account, + ) + nominator.totalWithdrawalAmounts = withdrawal.totalWithdrawalAmount ?? BigInt(0) nominator.totalStorageFeeRefund = withdrawal.withdrawals && Array.isArray(withdrawal.withdrawals) - ? withdrawal.withdrawals.reduce( - (acc, w) => acc + BigInt(w.storageFeeRefund), - BigInt(0) - ) - : BigInt(0); + ? withdrawal.withdrawals.reduce((acc, w) => acc + BigInt(w.storageFeeRefund), BigInt(0)) + : BigInt(0) nominator.unlockAtConfirmedDomainBlockNumber = withdrawal.withdrawals && Array.isArray(withdrawal.withdrawals) - ? withdrawal.withdrawals.map( - (w) => w.unlockAtConfirmedDomainBlockNumber - ) - : []; + ? withdrawal.withdrawals.map((w) => w.unlockAtConfirmedDomainBlockNumber) + : [] if (withdrawal.withdrawalInShares) { - nominator.pendingShares = - withdrawal.withdrawalInShares.shares ?? BigInt(0); + nominator.pendingShares = withdrawal.withdrawalInShares.shares ?? BigInt(0) nominator.pendingStorageFeeRefund = - withdrawal.withdrawalInShares.storageFeeRefund ?? BigInt(0); + withdrawal.withdrawalInShares.storageFeeRefund ?? BigInt(0) nominator.unlockAtConfirmedDomainBlockNumber = nominator.unlockAtConfirmedDomainBlockNumber.length > 0 ? [ withdrawal.withdrawalInShares.domainEpoch[1], ...nominator.unlockAtConfirmedDomainBlockNumber, ] - : [withdrawal.withdrawalInShares.domainEpoch[1]]; + : [withdrawal.withdrawalInShares.domainEpoch[1]] } - nominator.updatedAt = currentBlockNumber; + nominator.updatedAt = currentBlockNumber - cache.nominators.set(nominator.id, nominator); + cache.nominators.set(nominator.id, nominator) } - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/index.ts b/indexers/staking-squid/src/events/index.ts index 8de5f3a2a..e740f453a 100644 --- a/indexers/staking-squid/src/events/index.ts +++ b/indexers/staking-squid/src/events/index.ts @@ -1,35 +1,35 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; -import { events } from "../types"; -import { Cache } from "../utils/cache"; -import { processBundleStoredEvent } from "./bundle"; -import { processDomainInstantiatedEvent } from "./domain"; -import { processEpochTransitionEvent } from "./epoch"; +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' +import { events } from '../types' +import { Cache } from '../utils/cache' +import { processBundleStoredEvent } from './bundle' +import { processDomainInstantiatedEvent } from './domain' +import { processEpochTransitionEvent } from './epoch' import { processOperatorNominatedEvent, processOperatorRewardedEvent, processOperatorSlashedEvent, processOperatorTaxCollectedEvent, -} from "./operator"; +} from './operator' import { processFundsUnlockedEvent, processNominatedStakedUnlockedEvent, processNominatorUnlockedEvent, processOperatorUnlockedEvent, processStorageFeeUnlockedEvent, -} from "./unlock"; -import { processWithdrewStakeEvent } from "./withdraw"; +} from './unlock' +import { processWithdrewStakeEvent } from './withdraw' export async function processEvents( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { for (let event of extrinsic.events) { - cache = await processEvent(cache, api, block, extrinsic, event); + cache = await processEvent(cache, api, block, extrinsic, event) } - return cache; + return cache } async function processEvent( @@ -37,64 +37,53 @@ async function processEvent( api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { switch (event.name) { // new domain case events.domains.domainInstantiated.name: - return processDomainInstantiatedEvent(cache, block, event); + return processDomainInstantiatedEvent(cache, block, event) // epoch transition case events.domains.domainEpochCompleted.name: case events.domains.forceDomainEpochTransition.name: - return await processEpochTransitionEvent( - cache, - api, - block, - extrinsic, - event - ); + return await processEpochTransitionEvent(cache, api, block, extrinsic, event) // operator and nomination case events.domains.operatorNominated.name: - return processOperatorNominatedEvent(cache, block, extrinsic, event); + return processOperatorNominatedEvent(cache, block, extrinsic, event) // deposit and stake case events.domains.withdrewStake.name: - return processWithdrewStakeEvent(cache, block, extrinsic, event); + return processWithdrewStakeEvent(cache, block, extrinsic, event) // bundle case events.domains.bundleStored.name: - return processBundleStoredEvent(cache, block, extrinsic, event); + return processBundleStoredEvent(cache, block, extrinsic, event) // unlock case events.domains.operatorUnlocked.name: - return processOperatorUnlockedEvent(cache, block, extrinsic, event); + return processOperatorUnlockedEvent(cache, block, extrinsic, event) case events.domains.fundsUnlocked.name: - return processFundsUnlockedEvent(cache, block, extrinsic, event); + return processFundsUnlockedEvent(cache, block, extrinsic, event) case events.domains.nominatedStakedUnlocked.name: - return processNominatedStakedUnlockedEvent( - cache, - block, - extrinsic, - event - ); + return processNominatedStakedUnlockedEvent(cache, block, extrinsic, event) case events.domains.nominatorUnlocked.name: - return processNominatorUnlockedEvent(cache, block, extrinsic, event); + return processNominatorUnlockedEvent(cache, block, extrinsic, event) case events.domains.storageFeeUnlocked.name: - return processStorageFeeUnlockedEvent(cache, block, extrinsic, event); + return processStorageFeeUnlockedEvent(cache, block, extrinsic, event) // rewards and slashing case events.domains.operatorRewarded.name: - return processOperatorRewardedEvent(cache, block, extrinsic, event); + return processOperatorRewardedEvent(cache, block, extrinsic, event) case events.domains.operatorSlashed.name: - return processOperatorSlashedEvent(cache, block, extrinsic, event); + return processOperatorSlashedEvent(cache, block, extrinsic, event) // tax case events.domains.operatorTaxCollected.name: - return processOperatorTaxCollectedEvent(cache, block, extrinsic, event); + return processOperatorTaxCollectedEvent(cache, block, extrinsic, event) default: - return cache; + return cache } } diff --git a/indexers/staking-squid/src/events/operator.ts b/indexers/staking-squid/src/events/operator.ts index c46565109..d0db4dd8c 100644 --- a/indexers/staking-squid/src/events/operator.ts +++ b/indexers/staking-squid/src/events/operator.ts @@ -1,10 +1,5 @@ -import { - NominatorPendingAction, - NominatorStatus, - OperatorStatus, - WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import { NominatorPendingAction, NominatorStatus, OperatorStatus, WithdrawalStatus } from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createDeposit, createRewardEvent, @@ -12,48 +7,42 @@ import { getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { events } from "../types"; -import { getBlockNumber, getCallSigner } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { events } from '../types' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' export function processOperatorNominatedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const operatorIdNum = Number(operatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const operatorIdNum = Number(operatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) const storageFeeDepositedEvent = extrinsic.events.find( - (e) => e.name === events.domains.storageFeeDeposited.name - ); + (e) => e.name === events.domains.storageFeeDeposited.name, + ) const operatorNominatedEvent = extrinsic.events.find( - (e) => e.name === events.domains.operatorNominated.name - ); + (e) => e.name === events.domains.operatorNominated.name, + ) - const amount = BigInt(operatorNominatedEvent?.args.amount ?? 0); - const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0); - const totalAmount = BigInt(amount + storageFeeDeposit); + const amount = BigInt(operatorNominatedEvent?.args.amount ?? 0) + const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0) + const totalAmount = BigInt(amount + storageFeeDeposit) - const account = getOrCreateAccount(cache, block, address); - const operator = getOrCreateOperator(cache, block, operatorIdNum, {}); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const account = getOrCreateAccount(cache, block, address) + const operator = getOrCreateOperator(cache, block, operatorIdNum, {}) + const domain = getOrCreateDomain(cache, block, operator.domainId) - const nominator = getOrCreateNominator( - cache, - block, - extrinsic, - operatorIdNum, - { - domainId: domain.id, - accountId: account.id, - operatorId: operator.id, - } - ); + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorIdNum, { + domainId: domain.id, + accountId: account.id, + operatorId: operator.id, + }) const deposit = createDeposit( block, @@ -71,61 +60,61 @@ export function processOperatorNominatedEvent( totalAmount, epochDepositedAt: domain.completedEpoch ?? 0, domainBlockNumberDepositedAt: domain.lastDomainBlockNumber ?? 0, - } - ); + }, + ) - operator.totalDeposits += totalAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalDeposits += totalAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) if (nominator.totalDepositsCount === 0) { - nominator.pendingAction = NominatorPendingAction.PENDING_EPOCH_CHANGE; + nominator.pendingAction = NominatorPendingAction.PENDING_EPOCH_CHANGE } - nominator.totalDeposits += totalAmount; - nominator.totalDepositsCount++; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalDeposits += totalAmount + nominator.totalDepositsCount++ + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - domain.totalDeposits += totalAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalDeposits += totalAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - account.totalDeposits += totalAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalDeposits += totalAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - cache.deposits.set(deposit.id, deposit); + cache.deposits.set(deposit.id, deposit) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorSlashedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); + const operator = getOrCreateOperator(cache, block, operatorId) - operator.currentTotalStake = BigInt(0); - operator.currentStorageFeeDeposit = BigInt(0); - operator.status = OperatorStatus.SLASHED; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.currentTotalStake = BigInt(0) + operator.currentStorageFeeDeposit = BigInt(0) + operator.status = OperatorStatus.SLASHED + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) Array.from(cache.nominators.values()) .filter((n) => n.operatorId === operator.id) .forEach((n) => { - n.status = NominatorStatus.SLASHED; - n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.SLASHED + n.pendingAction = NominatorPendingAction.NO_ACTION_REQUIRED + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) .filter( @@ -133,79 +122,76 @@ export function processOperatorSlashedEvent( (w.status === WithdrawalStatus.PENDING_LOCK || w.status === WithdrawalStatus.PENDING_OPERATOR || w.status === WithdrawalStatus.READY) && - w.operatorId === operator.id + w.operatorId === operator.id, ) .forEach((w) => { - w.status = WithdrawalStatus.SLASHED; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.SLASHED + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorTaxCollectedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, tax } = event.args; - const blockNumber = getBlockNumber(block); - const taxAmount = BigInt(tax); + const { operatorId, tax } = event.args + const blockNumber = getBlockNumber(block) + const taxAmount = BigInt(tax) - const operator = getOrCreateOperator(cache, block, operatorId); - const account = getOrCreateAccount(cache, block, operator.accountId); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const operator = getOrCreateOperator(cache, block, operatorId) + const account = getOrCreateAccount(cache, block, operator.accountId) + const domain = getOrCreateDomain(cache, block, operator.domainId) - operator.totalTaxCollected += taxAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalTaxCollected += taxAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalTaxCollected += taxAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalTaxCollected += taxAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalTaxCollected += taxAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalTaxCollected += taxAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processOperatorRewardedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, reward } = event.args; - const amount = BigInt(reward); + const { operatorId, reward } = event.args + const amount = BigInt(reward) - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) - operator.totalRewardsCollected += amount; - cache.operators.set(operator.id, operator); + operator.totalRewardsCollected += amount + cache.operators.set(operator.id, operator) - domain.totalRewardsCollected += amount; - cache.domains.set(domain.id, domain); + domain.totalRewardsCollected += amount + cache.domains.set(domain.id, domain) const operatorRewardedEvent = createRewardEvent(block, extrinsic, { operatorId: operator.id, domainId: operator.domainId, amount, - }); - cache.operatorRewardedEvents.set( - operatorRewardedEvent.id, - operatorRewardedEvent - ); + }) + cache.operatorRewardedEvents.set(operatorRewardedEvent.id, operatorRewardedEvent) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/unlock.ts b/indexers/staking-squid/src/events/unlock.ts index 2fb653b14..8824ab1b5 100644 --- a/indexers/staking-squid/src/events/unlock.ts +++ b/indexers/staking-squid/src/events/unlock.ts @@ -4,248 +4,243 @@ import { NominatorStatus, OperatorPendingAction, WithdrawalStatus, -} from "../model"; -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateAccount, getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { getBlockNumber, getCallSigner } from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, getCallSigner } from '../utils' +import { Cache } from '../utils/cache' export function processOperatorUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const operatorIdNum = Number(operatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId } = event.args + const operatorIdNum = Number(operatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) - operator.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.pendingAction = OperatorPendingAction.NO_ACTION_REQUIRED + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.PENDING || - n.status === NominatorStatus.STAKED) && - n.operatorId === operator.id + (n.status === NominatorStatus.PENDING || n.status === NominatorStatus.STAKED) && + n.operatorId === operator.id, ) .forEach((n) => { - n.status = NominatorStatus.PENDING; - n.pendingAction = NominatorPendingAction.READY_TO_UNLOCK_ALL_FUNDS; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); - }); + n.status = NominatorStatus.PENDING + n.pendingAction = NominatorPendingAction.READY_TO_UNLOCK_ALL_FUNDS + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) + }) Array.from(cache.withdrawals.values()) - .filter( - (w) => - w.status === WithdrawalStatus.PENDING_OPERATOR && - w.domainId === domain.id - ) + .filter((w) => w.status === WithdrawalStatus.PENDING_OPERATOR && w.domainId === domain.id) .forEach((w) => { - w.status = WithdrawalStatus.READY; - w.readyAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.status = WithdrawalStatus.READY + w.readyAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processFundsUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, amount } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const amountBigInt = BigInt(amount); - - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); - const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId); + const { operatorId, nominatorId, amount } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const amountBigInt = BigInt(amount) + + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId) Array.from(cache.withdrawals.values()) .filter( (w) => w.status === WithdrawalStatus.PENDING_LOCK && w.operatorId === operator.id && - w.accountId === account.id + w.accountId === account.id, ) .forEach((w) => { - w.status = WithdrawalStatus.WITHDRAW; - w.unlockedAmount = amountBigInt; - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); - - let amountToWithdraw = amountBigInt; + w.status = WithdrawalStatus.WITHDRAW + w.unlockedAmount = amountBigInt + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) + + let amountToWithdraw = amountBigInt Array.from(cache.deposits.values()) .filter( (d) => d.status === DepositStatus.DEPOSITED && d.operatorId === operator.id && - d.accountId === account.id + d.accountId === account.id, ) .forEach((d) => { if (amountToWithdraw > 0) { if (amountToWithdraw > d.totalAmount) { - amountToWithdraw -= d.totalAmount; - d.totalWithdrawn = d.totalAmount; - d.status = DepositStatus.WITHDRAWN; + amountToWithdraw -= d.totalAmount + d.totalWithdrawn = d.totalAmount + d.status = DepositStatus.WITHDRAWN } else { - d.totalWithdrawn = amountToWithdraw; - d.status = DepositStatus.PARTIALLY_WITHDRAWN; - amountToWithdraw = BigInt(0); + d.totalWithdrawn = amountToWithdraw + d.status = DepositStatus.PARTIALLY_WITHDRAWN + amountToWithdraw = BigInt(0) } - d.updatedAt = blockNumber; - cache.deposits.set(d.id, d); + d.updatedAt = blockNumber + cache.deposits.set(d.id, d) } - }); + }) - domain.totalWithdrawals += amountBigInt; - account.totalWithdrawals += amountBigInt; - operator.totalWithdrawals += amountBigInt; - nominator.totalWithdrawals += amountBigInt; + domain.totalWithdrawals += amountBigInt + account.totalWithdrawals += amountBigInt + operator.totalWithdrawals += amountBigInt + nominator.totalWithdrawals += amountBigInt - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processNominatedStakedUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, unlockedAmount } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const unlockedAmountBigInt = BigInt(unlockedAmount); - let unlockedAmountBigIntLeft = unlockedAmountBigInt; - - const operator = getOrCreateOperator(cache, block, operatorId); - const domain = getOrCreateDomain(cache, block, operator.domainId); - const account = getOrCreateAccount(cache, block, address); - const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId); + const { operatorId, nominatorId, unlockedAmount } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const unlockedAmountBigInt = BigInt(unlockedAmount) + let unlockedAmountBigIntLeft = unlockedAmountBigInt + + const operator = getOrCreateOperator(cache, block, operatorId) + const domain = getOrCreateDomain(cache, block, operator.domainId) + const account = getOrCreateAccount(cache, block, address) + const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId) const userOpenWithdrawals = Array.from(cache.withdrawals.values()).filter( (w) => w.status === WithdrawalStatus.PENDING_LOCK && w.operatorId === operator.id && - w.accountId === account.id - ); + w.accountId === account.id, + ) if (userOpenWithdrawals.length === 1) { - const w = userOpenWithdrawals[0]; - w.status = WithdrawalStatus.WITHDRAW; - w.unlockedAmount = unlockedAmountBigInt; - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); + const w = userOpenWithdrawals[0] + w.status = WithdrawalStatus.WITHDRAW + w.unlockedAmount = unlockedAmountBigInt + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) } else { userOpenWithdrawals.forEach((w) => { - w.status = WithdrawalStatus.WITHDRAW; + w.status = WithdrawalStatus.WITHDRAW if (unlockedAmountBigIntLeft > w.estimatedAmount) { - w.unlockedAmount = w.estimatedAmount; - unlockedAmountBigIntLeft -= w.estimatedAmount; + w.unlockedAmount = w.estimatedAmount + unlockedAmountBigIntLeft -= w.estimatedAmount } else { - w.unlockedAmount = unlockedAmountBigIntLeft; - unlockedAmountBigIntLeft = BigInt(0); + w.unlockedAmount = unlockedAmountBigIntLeft + unlockedAmountBigIntLeft = BigInt(0) } - w.unlockedAt = blockNumber; - w.updatedAt = blockNumber; - cache.withdrawals.set(w.id, w); - }); + w.unlockedAt = blockNumber + w.updatedAt = blockNumber + cache.withdrawals.set(w.id, w) + }) } - let amountToWithdraw = unlockedAmountBigInt; + let amountToWithdraw = unlockedAmountBigInt Array.from(cache.deposits.values()) .filter( (d) => d.status === DepositStatus.DEPOSITED && d.operatorId === operator.id && - d.accountId === account.id + d.accountId === account.id, ) .forEach((d) => { if (amountToWithdraw > 0) { if (amountToWithdraw > d.totalAmount) { - amountToWithdraw -= d.totalAmount; - d.totalWithdrawn = d.totalAmount; - d.status = DepositStatus.WITHDRAWN; + amountToWithdraw -= d.totalAmount + d.totalWithdrawn = d.totalAmount + d.status = DepositStatus.WITHDRAWN } else { - d.totalWithdrawn = amountToWithdraw; - d.status = DepositStatus.PARTIALLY_WITHDRAWN; - amountToWithdraw = BigInt(0); + d.totalWithdrawn = amountToWithdraw + d.status = DepositStatus.PARTIALLY_WITHDRAWN + amountToWithdraw = BigInt(0) } - d.updatedAt = blockNumber; - cache.deposits.set(d.id, d); + d.updatedAt = blockNumber + cache.deposits.set(d.id, d) } - }); + }) - domain.totalWithdrawals += unlockedAmountBigInt; - account.totalWithdrawals += unlockedAmountBigInt; - operator.totalWithdrawals += unlockedAmountBigInt; - nominator.totalWithdrawals += unlockedAmountBigInt; + domain.totalWithdrawals += unlockedAmountBigInt + account.totalWithdrawals += unlockedAmountBigInt + operator.totalWithdrawals += unlockedAmountBigInt + nominator.totalWithdrawals += unlockedAmountBigInt - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processNominatorUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); + const { operatorId, nominatorId } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } export function processStorageFeeUnlockedEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId, nominatorId, storageFee } = event.args; - const operatorIdNum = Number(operatorId); - const nominatorIdNum = Number(nominatorId); - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const storageFeeBigInt = BigInt(storageFee); + const { operatorId, nominatorId, storageFee } = event.args + const operatorIdNum = Number(operatorId) + const nominatorIdNum = Number(nominatorId) + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const storageFeeBigInt = BigInt(storageFee) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/events/withdraw.ts b/indexers/staking-squid/src/events/withdraw.ts index 05bbfdfcd..b4b8b78d0 100644 --- a/indexers/staking-squid/src/events/withdraw.ts +++ b/indexers/staking-squid/src/events/withdraw.ts @@ -1,48 +1,44 @@ -import type { CtxBlock, CtxEvent, CtxExtrinsic } from "../processor"; +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { createWithdrawal, getOrCreateAccount, getOrCreateDomain, getOrCreateNominator, getOrCreateOperator, -} from "../storage"; -import { - getBlockNumber, - getCallSigner, - SHARES_CALCULATION_MULTIPLIER, -} from "../utils"; -import { Cache } from "../utils/cache"; +} from '../storage' +import { getBlockNumber, getCallSigner, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' export function processWithdrewStakeEvent( cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic, - event: CtxEvent + event: CtxEvent, ) { - const { operatorId } = event.args; - const { shares = 0 } = extrinsic.call?.args ?? {}; - const address = getCallSigner(extrinsic.call); - const blockNumber = getBlockNumber(block); - const sharesBigInt = BigInt(shares); + const { operatorId } = event.args + const { shares = 0 } = extrinsic.call?.args ?? {} + const address = getCallSigner(extrinsic.call) + const blockNumber = getBlockNumber(block) + const sharesBigInt = BigInt(shares) - const account = getOrCreateAccount(cache, block, address); - cache.accounts.set(account.id, account); + const account = getOrCreateAccount(cache, block, address) + cache.accounts.set(account.id, account) - const operator = getOrCreateOperator(cache, block, Number(operatorId), {}); - cache.operators.set(operator.id, operator); + const operator = getOrCreateOperator(cache, block, Number(operatorId), {}) + cache.operators.set(operator.id, operator) - const domain = getOrCreateDomain(cache, block, operator.domainId); - cache.domains.set(domain.id, domain); + const domain = getOrCreateDomain(cache, block, operator.domainId) + cache.domains.set(domain.id, domain) const nominator = getOrCreateNominator(cache, block, extrinsic, operatorId, { domainId: domain.id, accountId: account.id, operatorId: operator.id, - }); - cache.nominators.set(nominator.id, nominator); + }) + cache.nominators.set(nominator.id, nominator) const estimatedAmount = - (operator.currentSharePrice * sharesBigInt) / SHARES_CALCULATION_MULTIPLIER; + (operator.currentSharePrice * sharesBigInt) / SHARES_CALCULATION_MULTIPLIER const withdrawal = createWithdrawal( block, extrinsic, @@ -58,28 +54,28 @@ export function processWithdrewStakeEvent( estimatedAmount, epochWithdrawalRequestedAt: domain.completedEpoch ?? 0, domainBlockNumberWithdrawalRequestedAt: domain.lastDomainBlockNumber ?? 0, - } - ); - cache.withdrawals.set(withdrawal.id, withdrawal); + }, + ) + cache.withdrawals.set(withdrawal.id, withdrawal) - nominator.totalWithdrawalsCount++; - nominator.totalEstimatedWithdrawals += estimatedAmount; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalWithdrawalsCount++ + nominator.totalEstimatedWithdrawals += estimatedAmount + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - operator.totalEstimatedWithdrawals += estimatedAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalEstimatedWithdrawals += estimatedAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalEstimatedWithdrawals += estimatedAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalEstimatedWithdrawals += estimatedAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalEstimatedWithdrawals += estimatedAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalEstimatedWithdrawals += estimatedAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/extrinsics/index.ts b/indexers/staking-squid/src/extrinsics/index.ts index 253a6ce55..34036832f 100644 --- a/indexers/staking-squid/src/extrinsics/index.ts +++ b/indexers/staking-squid/src/extrinsics/index.ts @@ -1,36 +1,36 @@ -import type { ApiPromise } from "@autonomys/auto-utils"; -import { processEvents } from "../events"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { calls } from "../types"; -import { Cache } from "../utils/cache"; -import { processDeregisterOperator, processRegisterOperator } from "./operator"; +import type { ApiPromise } from '@autonomys/auto-utils' +import { processEvents } from '../events' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { calls } from '../types' +import { Cache } from '../utils/cache' +import { processDeregisterOperator, processRegisterOperator } from './operator' export async function processExtrinsics( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsics: CtxExtrinsic[] + extrinsics: CtxExtrinsic[], ) { for (let extrinsic of extrinsics) { - cache = await processExtrinsic(cache, api, block, extrinsic); + cache = await processExtrinsic(cache, api, block, extrinsic) } - return cache; + return cache } export async function processExtrinsic( cache: Cache, api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic + extrinsic: CtxExtrinsic, ) { switch (extrinsic.call?.name) { case calls.domains.registerOperator.name: - return processRegisterOperator(cache, block, extrinsic); + return processRegisterOperator(cache, block, extrinsic) case calls.domains.deregisterOperator.name: - return processDeregisterOperator(cache, block, extrinsic); + return processDeregisterOperator(cache, block, extrinsic) default: - return await processEvents(cache, api, block, extrinsic); + return await processEvents(cache, api, block, extrinsic) } } diff --git a/indexers/staking-squid/src/extrinsics/operator.ts b/indexers/staking-squid/src/extrinsics/operator.ts index eb514fafc..6325d3929 100644 --- a/indexers/staking-squid/src/extrinsics/operator.ts +++ b/indexers/staking-squid/src/extrinsics/operator.ts @@ -3,8 +3,8 @@ import { NominatorStatus, OperatorPendingAction, OperatorStatus, -} from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; +} from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' import { createDeposit, createNominator, @@ -13,64 +13,56 @@ import { getOrCreateAccount, getOrCreateDomain, getOrCreateOperator, -} from "../storage"; -import { events } from "../types"; -import { - getBlockNumber, - getCallSigner, - SHARES_CALCULATION_MULTIPLIER, -} from "../utils"; -import { Cache } from "../utils/cache"; - -export function processRegisterOperator( - cache: Cache, - block: CtxBlock, - extrinsic: CtxExtrinsic -) { - const { call, events: extrinsicEvents } = extrinsic; - const { domainId, amount, config } = call?.args ?? {}; - const { signingKey, minimumNominatorStake, nominationTax } = config ?? {}; - const address = getCallSigner(call); - const blockNumber = getBlockNumber(block); - const domainIdNum = Number(domainId ?? 0); +} from '../storage' +import { events } from '../types' +import { getBlockNumber, getCallSigner, SHARES_CALCULATION_MULTIPLIER } from '../utils' +import { Cache } from '../utils/cache' + +export function processRegisterOperator(cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic) { + const { call, events: extrinsicEvents } = extrinsic + const { domainId, amount, config } = call?.args ?? {} + const { signingKey, minimumNominatorStake, nominationTax } = config ?? {} + const address = getCallSigner(call) + const blockNumber = getBlockNumber(block) + const domainIdNum = Number(domainId ?? 0) const operatorRegisteredEvent = extrinsicEvents.find( - (e) => e.name === events.domains.operatorRegistered.name - ); - if (!operatorRegisteredEvent) return cache; + (e) => e.name === events.domains.operatorRegistered.name, + ) + if (!operatorRegisteredEvent) return cache const storageFeeDepositedEvent = extrinsicEvents.find( - (e) => e.name === events.domains.storageFeeDeposited.name - ); + (e) => e.name === events.domains.storageFeeDeposited.name, + ) - const operatorId = Number(operatorRegisteredEvent.args.operatorId ?? 0); - const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0); + const operatorId = Number(operatorRegisteredEvent.args.operatorId ?? 0) + const storageFeeDeposit = BigInt(storageFeeDepositedEvent?.args.amount ?? 0) const amountBigInt = BigInt(amount) > BigInt(storageFeeDeposit) ? BigInt(amount) - BigInt(storageFeeDeposit) - : BigInt(0); - const totalAmount = BigInt(amount); + : BigInt(0) + const totalAmount = BigInt(amount) - const domain = getOrCreateDomain(cache, block, domainIdNum); - const account = getOrCreateAccount(cache, block, address); + const domain = getOrCreateDomain(cache, block, domainIdNum) + const account = getOrCreateAccount(cache, block, address) const operator = createOperator(block, operatorId, { domainId: domain.id, accountId: account.id, - signingKey: signingKey ?? "", + signingKey: signingKey ?? '', minimumNominatorStake: BigInt(minimumNominatorStake ?? 0), nominationTax: nominationTax ?? 0, pendingAction: OperatorPendingAction.PENDING_REGISTRATION, - }); - cache.operators.set(operator.id, operator); + }) + cache.operators.set(operator.id, operator) const nominator = createNominator(block, extrinsic, operatorId, { domainId: domain.id, accountId: account.id, operatorId: operator.id, pendingAction: NominatorPendingAction.PENDING_EPOCH_CHANGE, - }); - cache.nominators.set(nominator.id, nominator); + }) + cache.nominators.set(nominator.id, nominator) const deposit = createDeposit( block, @@ -88,70 +80,64 @@ export function processRegisterOperator( totalAmount, epochDepositedAt: domain.completedEpoch ?? 0, domainBlockNumberDepositedAt: domain.lastDomainBlockNumber ?? 0, - } - ); - cache.deposits.set(deposit.id, deposit); + }, + ) + cache.deposits.set(deposit.id, deposit) - domain.totalDeposits += totalAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); + domain.totalDeposits += totalAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) - account.totalDeposits += totalAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalDeposits += totalAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - operator.totalDeposits += totalAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalDeposits += totalAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - nominator.totalDeposits += totalAmount; - nominator.totalDepositsCount++; - nominator.updatedAt = blockNumber; - cache.nominators.set(nominator.id, nominator); + nominator.totalDeposits += totalAmount + nominator.totalDepositsCount++ + nominator.updatedAt = blockNumber + cache.nominators.set(nominator.id, nominator) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } -export function processDeregisterOperator( - cache: Cache, - block: CtxBlock, - extrinsic: CtxExtrinsic -) { - const { call, events: extrinsicEvents } = extrinsic; - const operatorId = Number(call?.args.operatorId ?? 0); - const blockNumber = getBlockNumber(block); +export function processDeregisterOperator(cache: Cache, block: CtxBlock, extrinsic: CtxExtrinsic) { + const { call, events: extrinsicEvents } = extrinsic + const operatorId = Number(call?.args.operatorId ?? 0) + const blockNumber = getBlockNumber(block) - const operator = getOrCreateOperator(cache, block, operatorId); - cache.operators.set(operator.id, operator); + const operator = getOrCreateOperator(cache, block, operatorId) + cache.operators.set(operator.id, operator) - const domain = getOrCreateDomain(cache, block, operator.domainId); - cache.domains.set(domain.id, domain); + const domain = getOrCreateDomain(cache, block, operator.domainId) + cache.domains.set(domain.id, domain) - const account = getOrCreateAccount(cache, block, operator.accountId); - cache.accounts.set(account.id, account); + const account = getOrCreateAccount(cache, block, operator.accountId) + cache.accounts.set(account.id, account) const operatorDeregisteredEvent = extrinsicEvents.find( - (e) => e.name === events.domains.operatorDeregistered.name - ); - if (!operatorDeregisteredEvent) return cache; + (e) => e.name === events.domains.operatorDeregistered.name, + ) + if (!operatorDeregisteredEvent) return cache - operator.currentTotalStake = BigInt(0); - operator.currentStorageFeeDeposit = BigInt(0); - operator.status = OperatorStatus.DEREGISTERED; + operator.currentTotalStake = BigInt(0) + operator.currentStorageFeeDeposit = BigInt(0) + operator.status = OperatorStatus.DEREGISTERED Array.from(cache.nominators.values()) .filter( (n) => - (n.status === NominatorStatus.STAKED || - n.status === NominatorStatus.PENDING) && - n.operatorId === operator.id + (n.status === NominatorStatus.STAKED || n.status === NominatorStatus.PENDING) && + n.operatorId === operator.id, ) .forEach((n) => { const estimatedAmount = - (operator.currentSharePrice * n.knownShares) / - SHARES_CALCULATION_MULTIPLIER; + (operator.currentSharePrice * n.knownShares) / SHARES_CALCULATION_MULTIPLIER const w = createWithdrawal( block, extrinsic, @@ -165,34 +151,33 @@ export function processDeregisterOperator( nominatorId: n.id, shares: n.knownShares, epochWithdrawalRequestedAt: domain.completedEpoch ?? 0, - domainBlockNumberWithdrawalRequestedAt: - domain.lastDomainBlockNumber ?? 0, + domainBlockNumberWithdrawalRequestedAt: domain.lastDomainBlockNumber ?? 0, estimatedAmount, - } - ); - cache.withdrawals.set(w.id, w); + }, + ) + cache.withdrawals.set(w.id, w) - n.status = NominatorStatus.PENDING; - n.totalWithdrawalsCount++; - n.updatedAt = blockNumber; - cache.nominators.set(n.id, n); + n.status = NominatorStatus.PENDING + n.totalWithdrawalsCount++ + n.updatedAt = blockNumber + cache.nominators.set(n.id, n) - operator.totalEstimatedWithdrawals += estimatedAmount; - operator.updatedAt = blockNumber; - cache.operators.set(operator.id, operator); + operator.totalEstimatedWithdrawals += estimatedAmount + operator.updatedAt = blockNumber + cache.operators.set(operator.id, operator) - account.totalEstimatedWithdrawals += estimatedAmount; - account.updatedAt = blockNumber; - cache.accounts.set(account.id, account); + account.totalEstimatedWithdrawals += estimatedAmount + account.updatedAt = blockNumber + cache.accounts.set(account.id, account) - domain.totalEstimatedWithdrawals += estimatedAmount; - domain.updatedAt = blockNumber; - cache.domains.set(domain.id, domain); - }); + domain.totalEstimatedWithdrawals += estimatedAmount + domain.updatedAt = blockNumber + cache.domains.set(domain.id, domain) + }) - cache.operators.set(operator.id, operator); + cache.operators.set(operator.id, operator) - cache.isModified = true; + cache.isModified = true - return cache; + return cache } diff --git a/indexers/staking-squid/src/main.ts b/indexers/staking-squid/src/main.ts index 92c5f7e7f..1dea21441 100644 --- a/indexers/staking-squid/src/main.ts +++ b/indexers/staking-squid/src/main.ts @@ -1,15 +1,15 @@ -import { createConnection } from "@autonomys/auto-utils"; -import { TypeormDatabase } from "@subsquid/typeorm-store"; -import { assertNotNull } from "@subsquid/util-internal"; -import { processBlocks } from "./blocks"; -import { processor } from "./processor"; +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { processBlocks } from './blocks' +import { processor } from './processor' processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( - assertNotNull(process.env.RPC_CONSENSUS_HTTP, "No RPC_CONSENSUS_HTTP env") - ); + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + ) - await processBlocks(ctx, api); + await processBlocks(ctx, api) - await api.disconnect(); -}); + await api.disconnect() +}) diff --git a/indexers/staking-squid/src/model/index.ts b/indexers/staking-squid/src/model/index.ts index 73bfb2881..99735f641 100644 --- a/indexers/staking-squid/src/model/index.ts +++ b/indexers/staking-squid/src/model/index.ts @@ -1 +1 @@ -export * from "./generated" +export * from './generated' diff --git a/indexers/staking-squid/src/processor.ts b/indexers/staking-squid/src/processor.ts index 50e485607..03f9b27e4 100644 --- a/indexers/staking-squid/src/processor.ts +++ b/indexers/staking-squid/src/processor.ts @@ -6,19 +6,14 @@ import { Call as _Call, Event as _Event, Extrinsic as _Extrinsic, -} from "@subsquid/substrate-processor"; -import { assertNotNull } from "@subsquid/util-internal"; -import { calls, events } from "./types"; +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { calls, events } from './types' export const processor = new SubstrateBatchProcessor() - .setGateway( - assertNotNull(process.env.CONSENSUS_GATEWAY, "No Gateway endpoint supplied") - ) + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) .setRpcEndpoint({ - url: assertNotNull( - process.env.RPC_CONSENSUS_HTTP, - "No RPC endpoint supplied" - ), + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source rateLimit: 10, }) @@ -94,15 +89,15 @@ export const processor = new SubstrateBatchProcessor() name: true, args: true, }, - }); + }) -export type Fields = SubstrateBatchProcessorFields; -export type Block = BlockHeader; -export type Event = _Event; -export type Call = _Call; -export type Extrinsic = _Extrinsic; -export type ProcessorContext = DataHandlerContext; -export type Ctx = ProcessorContext; -export type CtxBlock = Ctx["blocks"][0]; -export type CtxExtrinsic = CtxBlock["extrinsics"][0]; -export type CtxEvent = CtxExtrinsic["events"][0]; +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/staking-squid/src/storage/account.ts b/indexers/staking-squid/src/storage/account.ts index c9e08675b..941ae5b17 100644 --- a/indexers/staking-squid/src/storage/account.ts +++ b/indexers/staking-squid/src/storage/account.ts @@ -1,14 +1,14 @@ -import { Account } from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Account } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createAccount = ( block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const blockNumber = getBlockNumber(block); + const blockNumber = getBlockNumber(block) return new Account({ id: address, totalDeposits: props.totalDeposits ?? BigInt(0), @@ -20,23 +20,22 @@ export const createAccount = ( currentTotalShares: props.currentTotalShares ?? BigInt(0), currentSharePrice: props.currentSharePrice ?? BigInt(0), accumulatedEpochStake: props.accumulatedEpochStake ?? BigInt(0), - accumulatedEpochStorageFeeDeposit: - props.accumulatedEpochStorageFeeDeposit ?? BigInt(0), + accumulatedEpochStorageFeeDeposit: props.accumulatedEpochStorageFeeDeposit ?? BigInt(0), accumulatedEpochShares: props.accumulatedEpochShares ?? BigInt(0), createdAt: blockNumber, updatedAt: blockNumber, - }); -}; + }) +} export const getOrCreateAccount = ( cache: Cache, block: CtxBlock, address: string, - props: Partial = {} + props: Partial = {}, ): Account => { - const account = cache.accounts.get(address); + const account = cache.accounts.get(address) - if (!account) return createAccount(block, address, props); + if (!account) return createAccount(block, address, props) - return account; -}; + return account +} diff --git a/indexers/staking-squid/src/storage/bundle.ts b/indexers/staking-squid/src/storage/bundle.ts index 59dc32ee4..983929fb9 100644 --- a/indexers/staking-squid/src/storage/bundle.ts +++ b/indexers/staking-squid/src/storage/bundle.ts @@ -1,25 +1,25 @@ -import { randomUUID } from "crypto"; -import { Bundle, BundleAuthor } from "../model"; -import { bundleUID } from "../utils"; +import { randomUUID } from 'crypto' +import { Bundle, BundleAuthor } from '../model' +import { bundleUID } from '../utils' export const createBundle = ( domainId: string, domainBlockId: string, domainBlockHash: string, domainBlockBundleIndex: number | string, - props?: Partial + props?: Partial, ): Bundle => new Bundle({ id: bundleUID(domainId, domainBlockHash, domainBlockBundleIndex), domainId, domainBlockId, - domainEpochId: "", + domainEpochId: '', domainBlockNumber: 0, - domainBlockHash: "", - domainBlockExtrinsicRoot: "", + domainBlockHash: '', + domainBlockExtrinsicRoot: '', epoch: 0, consensusBlockNumber: 0, - consensusBlockHash: "", + consensusBlockHash: '', totalTransfersIn: BigInt(0), transfersInCount: 0, totalTransfersOut: BigInt(0), @@ -33,7 +33,7 @@ export const createBundle = ( domainExecutionFee: BigInt(0), burnedBalance: BigInt(0), ...props, - }); + }) export const createBundleAuthor = ( domainId: string, @@ -42,7 +42,7 @@ export const createBundleAuthor = ( bundleId: string, domainBlockId: string, epoch: number, - props?: Partial + props?: Partial, ): BundleAuthor => new BundleAuthor({ id: randomUUID(), @@ -51,7 +51,7 @@ export const createBundleAuthor = ( operatorId, bundleId, domainBlockId, - domainEpochId: "", + domainEpochId: '', epoch, ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/deposit.ts b/indexers/staking-squid/src/storage/deposit.ts index 0899df180..922b1fd3a 100644 --- a/indexers/staking-squid/src/storage/deposit.ts +++ b/indexers/staking-squid/src/storage/deposit.ts @@ -1,6 +1,6 @@ -import { Deposit, DepositStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { depositUID, getBlockNumber, getTimestamp } from "../utils"; +import { Deposit, DepositStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { depositUID, getBlockNumber, getTimestamp } from '../utils' export const createDeposit = ( block: CtxBlock, @@ -8,14 +8,14 @@ export const createDeposit = ( operatorId: number | string, accountId: string, depositIndex: number | string, - props: Partial + props: Partial, ): Deposit => new Deposit({ id: depositUID(operatorId, accountId, depositIndex), accountId: accountId, - domainId: "", + domainId: '', operatorId: operatorId.toString(), - nominatorId: "", + nominatorId: '', amount: BigInt(0), storageFeeDeposit: BigInt(0), status: DepositStatus.PENDING, @@ -29,4 +29,4 @@ export const createDeposit = ( totalAmount: BigInt(0), totalWithdrawn: BigInt(0), ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/domain.ts b/indexers/staking-squid/src/storage/domain.ts index 816e7aa8a..6f80258bc 100644 --- a/indexers/staking-squid/src/storage/domain.ts +++ b/indexers/staking-squid/src/storage/domain.ts @@ -1,18 +1,18 @@ -import { Domain, DomainRuntime } from "../model"; -import type { CtxBlock } from "../processor"; -import { domainUID, getBlockNumber } from "../utils"; -import { Cache } from "../utils/cache"; +import { Domain, DomainRuntime } from '../model' +import type { CtxBlock } from '../processor' +import { domainUID, getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' export const createDomain = ( block: CtxBlock, domainId: number | string, - props: Partial + props: Partial, ): Domain => new Domain({ - id: typeof domainId === "string" ? domainId : domainUID(domainId), - sortId: typeof domainId === "string" ? parseInt(domainId) : domainId, - accountId: "0x", - name: "", + id: typeof domainId === 'string' ? domainId : domainUID(domainId), + sortId: typeof domainId === 'string' ? parseInt(domainId) : domainId, + accountId: '0x', + name: '', runtimeId: 0, runtime: DomainRuntime.EVM, runtimeInfo: JSON.stringify({}), @@ -53,19 +53,17 @@ export const createDomain = ( ...props, createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateDomain = ( cache: Cache, block: CtxBlock, domainId: number | string, - props: Partial = {} + props: Partial = {}, ): Domain => { - const domain = cache.domains.get( - typeof domainId === "string" ? domainId : domainUID(domainId) - ); + const domain = cache.domains.get(typeof domainId === 'string' ? domainId : domainUID(domainId)) - if (!domain) return createDomain(block, domainId, props); + if (!domain) return createDomain(block, domainId, props) - return domain; -}; + return domain +} diff --git a/indexers/staking-squid/src/storage/domainBlock.ts b/indexers/staking-squid/src/storage/domainBlock.ts index 27b509a4a..fccc16b09 100644 --- a/indexers/staking-squid/src/storage/domainBlock.ts +++ b/indexers/staking-squid/src/storage/domainBlock.ts @@ -1,26 +1,26 @@ -import { DomainBlock } from "../model"; -import { CtxBlock } from "../processor"; -import { blockUID, getBlockNumber, getTimestamp } from "../utils"; +import { DomainBlock } from '../model' +import { CtxBlock } from '../processor' +import { blockUID, getBlockNumber, getTimestamp } from '../utils' export const createDomainBlock = ( block: CtxBlock, domainId: string, blockNumber: number, blockHash: string, - props?: Partial + props?: Partial, ): DomainBlock => new DomainBlock({ id: blockUID(domainId, blockNumber), domainId, - domainEpochId: "", + domainEpochId: '', blockNumber, blockHash, - extrinsicRoot: "", + extrinsicRoot: '', epoch: 0, consensusBlockNumber: 0, - consensusBlockHash: "", + consensusBlockHash: '', createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), timestamp: getTimestamp(block), ...props, - }); + }) diff --git a/indexers/staking-squid/src/storage/domainEpoch.ts b/indexers/staking-squid/src/storage/domainEpoch.ts index a27abc206..038d298da 100644 --- a/indexers/staking-squid/src/storage/domainEpoch.ts +++ b/indexers/staking-squid/src/storage/domainEpoch.ts @@ -1,13 +1,13 @@ -import { DomainEpoch } from "../model"; -import { CtxBlock } from "../processor"; -import { epochUID, getBlockNumber, getTimestamp } from "../utils"; -import { Cache } from "../utils/cache"; +import { DomainEpoch } from '../model' +import { CtxBlock } from '../processor' +import { epochUID, getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' export const createDomainEpoch = ( block: CtxBlock, domainId: string, epoch: number, - props?: Partial + props?: Partial, ): DomainEpoch => new DomainEpoch({ id: epochUID(domainId, epoch), @@ -21,23 +21,23 @@ export const createDomainEpoch = ( epochDuration: BigInt(0), consensusBlockNumberStart: 0, consensusBlockNumberEnd: 0, - consensusBlockHashStart: "", - consensusBlockHashEnd: "", + consensusBlockHashStart: '', + consensusBlockHashEnd: '', createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), ...props, - }); + }) export const getOrCreateDomainEpoch = ( cache: Cache, block: CtxBlock, domainId: string, epoch: number, - props: Partial = {} + props: Partial = {}, ): DomainEpoch => { - const domainEpoch = cache.domainEpochs.get(epochUID(domainId, epoch)); + const domainEpoch = cache.domainEpochs.get(epochUID(domainId, epoch)) - if (!domainEpoch) return createDomainEpoch(block, domainId, epoch, props); + if (!domainEpoch) return createDomainEpoch(block, domainId, epoch, props) - return domainEpoch; -}; + return domainEpoch +} diff --git a/indexers/staking-squid/src/storage/index.ts b/indexers/staking-squid/src/storage/index.ts index 51519f244..4534d1ce8 100644 --- a/indexers/staking-squid/src/storage/index.ts +++ b/indexers/staking-squid/src/storage/index.ts @@ -1,10 +1,10 @@ -export * from "./account"; -export * from "./bundle"; -export * from "./deposit"; -export * from "./domain"; -export * from "./domainBlock"; -export * from "./domainEpoch"; -export * from "./nominator"; -export * from "./operator"; -export * from "./stats"; -export * from "./withdrawal"; +export * from './account' +export * from './bundle' +export * from './deposit' +export * from './domain' +export * from './domainBlock' +export * from './domainEpoch' +export * from './nominator' +export * from './operator' +export * from './stats' +export * from './withdrawal' diff --git a/indexers/staking-squid/src/storage/nominator.ts b/indexers/staking-squid/src/storage/nominator.ts index 53974d82a..900d6b6ed 100644 --- a/indexers/staking-squid/src/storage/nominator.ts +++ b/indexers/staking-squid/src/storage/nominator.ts @@ -1,23 +1,23 @@ -import { Nominator, NominatorPendingAction, NominatorStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getCallSigner, nominatorUID } from "../utils"; -import { Cache } from "../utils/cache"; +import { Nominator, NominatorPendingAction, NominatorStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getCallSigner, nominatorUID } from '../utils' +import { Cache } from '../utils/cache' export const createNominator = ( block: CtxBlock, extrinsic: CtxExtrinsic, operatorId: number, props: Partial, - address?: string + address?: string, ): Nominator => { if (!address) { - address = getCallSigner(extrinsic.call); + address = getCallSigner(extrinsic.call) } return new Nominator({ id: nominatorUID(operatorId, address), accountId: address, - domainId: "", + domainId: '', operatorId: operatorId.toString(), knownShares: BigInt(0), knownStorageFeeDeposit: BigInt(0), @@ -47,8 +47,8 @@ export const createNominator = ( createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), ...props, - }); -}; + }) +} export const getOrCreateNominator = ( cache: Cache, @@ -56,27 +56,25 @@ export const getOrCreateNominator = ( extrinsic: CtxExtrinsic, operatorId: number | string, props: Partial = {}, - address?: string + address?: string, ): Nominator => { if (!address) { - address = getCallSigner(extrinsic.call); + address = getCallSigner(extrinsic.call) } const nominator = cache.nominators.get( - typeof operatorId === "string" - ? operatorId - : nominatorUID(operatorId, address) - ); + typeof operatorId === 'string' ? operatorId : nominatorUID(operatorId, address), + ) if (!nominator) return createNominator( block, extrinsic, - typeof operatorId === "string" ? parseInt(operatorId) : operatorId, + typeof operatorId === 'string' ? parseInt(operatorId) : operatorId, { ...props, }, - address - ); + address, + ) - return nominator; -}; + return nominator +} diff --git a/indexers/staking-squid/src/storage/operator.ts b/indexers/staking-squid/src/storage/operator.ts index 0dfa3d0b8..def81a326 100644 --- a/indexers/staking-squid/src/storage/operator.ts +++ b/indexers/staking-squid/src/storage/operator.ts @@ -1,38 +1,33 @@ -import { randomUUID } from "crypto"; -import { - Operator, - OperatorPendingAction, - OperatorStatus, - RewardEvent, -} from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getTimestamp, operatorUID } from "../utils"; -import { Cache } from "../utils/cache"; +import { randomUUID } from 'crypto' +import { Operator, OperatorPendingAction, OperatorStatus, RewardEvent } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getTimestamp, operatorUID } from '../utils' +import { Cache } from '../utils/cache' export const createOperator = ( block: CtxBlock, operatorId: number | string, - props: Partial + props: Partial, ): Operator => new Operator({ - id: typeof operatorId === "string" ? operatorId : operatorUID(operatorId), - sortId: typeof operatorId === "string" ? parseInt(operatorId) : operatorId, - accountId: "", - domainId: "", - signingKey: "0x", + id: typeof operatorId === 'string' ? operatorId : operatorUID(operatorId), + sortId: typeof operatorId === 'string' ? parseInt(operatorId) : operatorId, + accountId: '', + domainId: '', + signingKey: '0x', minimumNominatorStake: BigInt(0), nominationTax: 0, - name: "", - description: "", - icon: "", - banner: "", - website: "", + name: '', + description: '', + icon: '', + banner: '', + website: '', websiteVerified: false, - email: "", + email: '', emailVerified: false, - discord: "", - github: "", - twitter: "", + discord: '', + github: '', + twitter: '', currentTotalStake: BigInt(0), currentStorageFeeDeposit: BigInt(0), currentEpochRewards: BigInt(0), @@ -68,27 +63,27 @@ export const createOperator = ( ...props, createdAt: getBlockNumber(block), updatedAt: getBlockNumber(block), - }); + }) export const getOrCreateOperator = ( cache: Cache, block: CtxBlock, operatorId: number | string, - props: Partial = {} + props: Partial = {}, ): Operator => { const operator = cache.operators.get( - typeof operatorId === "string" ? operatorId : operatorUID(operatorId) - ); + typeof operatorId === 'string' ? operatorId : operatorUID(operatorId), + ) - if (!operator) return createOperator(block, operatorId, props); + if (!operator) return createOperator(block, operatorId, props) - return operator; -}; + return operator +} export const createRewardEvent = ( block: CtxBlock, extrinsic: CtxExtrinsic, - props: Partial + props: Partial, ): RewardEvent => new RewardEvent({ id: randomUUID(), @@ -96,4 +91,4 @@ export const createRewardEvent = ( blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), extrinsicHash: extrinsic.hash.toString(), - }); + }) diff --git a/indexers/staking-squid/src/storage/stats.ts b/indexers/staking-squid/src/storage/stats.ts index 93fcac4e4..50e9b1d98 100644 --- a/indexers/staking-squid/src/storage/stats.ts +++ b/indexers/staking-squid/src/storage/stats.ts @@ -1,4 +1,4 @@ -import { randomUUID } from "crypto"; +import { randomUUID } from 'crypto' import { Account, Domain, @@ -10,57 +10,37 @@ import { StatsPerDomain, StatsPerNominator, StatsPerOperator, -} from "../model"; -import type { CtxBlock } from "../processor"; -import { getBlockNumber, getTimestamp } from "../utils"; -import { - AllTimeHighSharePriceKey, - AllTimeHighStakedKey, - Cache, -} from "../utils/cache"; +} from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { AllTimeHighSharePriceKey, AllTimeHighStakedKey, Cache } from '../utils/cache' export const createStatsPerOperator = ( cache: Cache, block: CtxBlock, domain: Domain, - operator: Operator + operator: Operator, ): StatsPerOperator => { - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.domainId === domain.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.domainId === domain.id - ); - const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.domainId === domain.id - ); + const nominators = Array.from(cache.nominators.values()).filter((o) => o.domainId === domain.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.domainId === domain.id) + const withdrawals = Array.from(cache.withdrawals.values()).filter((o) => o.domainId === domain.id) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (operator.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = operator.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = operator.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (operator.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = operator.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = operator.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerOperator({ @@ -81,59 +61,41 @@ export const createStatsPerOperator = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerDomain = ( cache: Cache, block: CtxBlock, - domain: Domain + domain: Domain, ): StatsPerDomain => { - const operators = Array.from(cache.operators.values()).filter( - (o) => o.domainId === domain.id - ); - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.domainId === domain.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.domainId === domain.id - ); - const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.domainId === domain.id - ); + const operators = Array.from(cache.operators.values()).filter((o) => o.domainId === domain.id) + const nominators = Array.from(cache.nominators.values()).filter((o) => o.domainId === domain.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.domainId === domain.id) + const withdrawals = Array.from(cache.withdrawals.values()).filter((o) => o.domainId === domain.id) const activeOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.REGISTERED - ).length; + (operator) => operator.status === OperatorStatus.REGISTERED, + ).length const slashedOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.SLASHED - ).length; + (operator) => operator.status === OperatorStatus.SLASHED, + ).length - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:general`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:general`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:general` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:general` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (domain.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = domain.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = domain.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (domain.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = domain.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = domain.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerDomain({ @@ -156,76 +118,65 @@ export const createStatsPerDomain = ( withdrawalsCount: withdrawals.length, blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), - }); -}; + }) +} export const createStats = (cache: Cache, block: CtxBlock): Stats => { - const operators = Array.from(cache.operators.values()); + const operators = Array.from(cache.operators.values()) const activeOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.REGISTERED - ).length; + (operator) => operator.status === OperatorStatus.REGISTERED, + ).length const slashedOperatorsCount = operators.filter( - (operator) => operator.status === OperatorStatus.SLASHED - ).length; + (operator) => operator.status === OperatorStatus.SLASHED, + ).length const totalStaked = operators.reduce( (total, operator) => total + operator.currentTotalStake, - BigInt(0) - ); + BigInt(0), + ) const totalDeposits = operators.reduce( (total, operator) => total + operator.totalDeposits, - BigInt(0) - ); + BigInt(0), + ) const totalTaxCollected = operators.reduce( (total, operator) => total + operator.totalTaxCollected, - BigInt(0) - ); + BigInt(0), + ) const totalRewardsCollected = operators.reduce( (total, operator) => total + operator.totalRewardsCollected, - BigInt(0) - ); + BigInt(0), + ) const totalWithdrawals = operators.reduce( (total, operator) => total + operator.totalWithdrawals, - BigInt(0) - ); + BigInt(0), + ) const totalShares = operators.reduce( (total, operator) => total + operator.currentTotalShares, - BigInt(0) - ); + BigInt(0), + ) const currentSharePrice = operators.reduce( (total, operator) => total + operator.currentSharePrice, - BigInt(0) - ); + BigInt(0), + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = - "allTimeHighStaked:all-domains:general"; + const allTimeHighStakedKey: AllTimeHighStakedKey = 'allTimeHighStaked:all-domains:general' const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = - "allTimeHighSharePrice:all-domains:general"; + 'allTimeHighSharePrice:all-domains:general' - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (totalStaked > allTimeHighStaked) { - allTimeHighStaked = totalStaked; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = totalStaked + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new Stats({ @@ -248,49 +199,37 @@ export const createStats = (cache: Cache, block: CtxBlock): Stats => { withdrawalsCount: cache.withdrawals.size, blockNumber: getBlockNumber(block), timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerNominator = ( cache: Cache, block: CtxBlock, domain: Domain, operator: Operator, - nominator: Nominator + nominator: Nominator, ): StatsPerNominator => { - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.nominatorId === nominator.id - ); + const deposits = Array.from(cache.deposits.values()).filter((o) => o.nominatorId === nominator.id) const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.nominatorId === nominator.id - ); + (o) => o.nominatorId === nominator.id, + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}:${nominator.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}:${nominator.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:${domain.id}:${operator.id}:${nominator.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:${domain.id}:${operator.id}:${nominator.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (nominator.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = nominator.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = nominator.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (nominator.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = nominator.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = nominator.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerNominator({ @@ -309,53 +248,37 @@ export const createStatsPerNominator = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} export const createStatsPerAccount = ( cache: Cache, block: CtxBlock, - account: Account + account: Account, ): StatsPerAccount => { - const operators = Array.from(cache.operators.values()).filter( - (o) => o.accountId === account.id - ); - const nominators = Array.from(cache.nominators.values()).filter( - (o) => o.accountId === account.id - ); - const deposits = Array.from(cache.deposits.values()).filter( - (o) => o.accountId === account.id - ); + const operators = Array.from(cache.operators.values()).filter((o) => o.accountId === account.id) + const nominators = Array.from(cache.nominators.values()).filter((o) => o.accountId === account.id) + const deposits = Array.from(cache.deposits.values()).filter((o) => o.accountId === account.id) const withdrawals = Array.from(cache.withdrawals.values()).filter( - (o) => o.accountId === account.id - ); + (o) => o.accountId === account.id, + ) - const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:account:${account.id}`; - const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:account:${account.id}`; + const allTimeHighStakedKey: AllTimeHighStakedKey = `allTimeHighStaked:account:${account.id}` + const allTimeHighSharePriceKey: AllTimeHighSharePriceKey = `allTimeHighSharePrice:account:${account.id}` - let allTimeHighStaked = BigInt( - cache.internalKeyStore.get(allTimeHighStakedKey) || "0" - ); - let allTimeHighSharePrice = BigInt( - cache.internalKeyStore.get(allTimeHighSharePriceKey) || "0" - ); + let allTimeHighStaked = BigInt(cache.internalKeyStore.get(allTimeHighStakedKey) || '0') + let allTimeHighSharePrice = BigInt(cache.internalKeyStore.get(allTimeHighSharePriceKey) || '0') if (account.currentTotalStake > allTimeHighStaked) { - allTimeHighStaked = account.currentTotalStake; - cache.internalKeyStore.set( - allTimeHighStakedKey, - allTimeHighStaked.toString() - ); - cache.isModified = true; + allTimeHighStaked = account.currentTotalStake + cache.internalKeyStore.set(allTimeHighStakedKey, allTimeHighStaked.toString()) + cache.isModified = true } if (account.currentSharePrice > allTimeHighSharePrice) { - allTimeHighSharePrice = account.currentSharePrice; - cache.internalKeyStore.set( - allTimeHighSharePriceKey, - allTimeHighSharePrice.toString() - ); - cache.isModified = true; + allTimeHighSharePrice = account.currentSharePrice + cache.internalKeyStore.set(allTimeHighSharePriceKey, allTimeHighSharePrice.toString()) + cache.isModified = true } return new StatsPerAccount({ @@ -374,5 +297,5 @@ export const createStatsPerAccount = ( depositsCount: deposits.length, withdrawalsCount: withdrawals.length, timestamp: getTimestamp(block), - }); -}; + }) +} diff --git a/indexers/staking-squid/src/storage/withdrawal.ts b/indexers/staking-squid/src/storage/withdrawal.ts index 33fd12603..16276f1de 100644 --- a/indexers/staking-squid/src/storage/withdrawal.ts +++ b/indexers/staking-squid/src/storage/withdrawal.ts @@ -1,6 +1,6 @@ -import { Withdrawal, WithdrawalStatus } from "../model"; -import type { CtxBlock, CtxExtrinsic } from "../processor"; -import { getBlockNumber, getTimestamp, withdrawalUID } from "../utils"; +import { Withdrawal, WithdrawalStatus } from '../model' +import type { CtxBlock, CtxExtrinsic } from '../processor' +import { getBlockNumber, getTimestamp, withdrawalUID } from '../utils' export const createWithdrawal = ( block: CtxBlock, @@ -8,14 +8,14 @@ export const createWithdrawal = ( operatorId: number | string, accountId: string, withdrawalIndex: number | string, - props: Partial + props: Partial, ): Withdrawal => new Withdrawal({ id: withdrawalUID(operatorId, accountId, withdrawalIndex), accountId: accountId, - domainId: "", + domainId: '', operatorId: operatorId.toString(), - nominatorId: "", + nominatorId: '', shares: BigInt(0), estimatedAmount: BigInt(0), unlockedAmount: BigInt(0), @@ -24,7 +24,7 @@ export const createWithdrawal = ( status: WithdrawalStatus.PENDING_LOCK, timestamp: getTimestamp(block), withdrawExtrinsicHash: extrinsic.hash.toString(), - unlockExtrinsicHash: "", + unlockExtrinsicHash: '', epochWithdrawalRequestedAt: 0, domainBlockNumberWithdrawalRequestedAt: 0, createdAt: getBlockNumber(block), @@ -32,4 +32,4 @@ export const createWithdrawal = ( unlockedAt: 0, updatedAt: getBlockNumber(block), ...props, - }); + }) diff --git a/indexers/staking-squid/src/types/domains/calls.ts b/indexers/staking-squid/src/types/domains/calls.ts index 4195fdca8..1d8f9629a 100644 --- a/indexers/staking-squid/src/types/domains/calls.ts +++ b/indexers/staking-squid/src/types/domains/calls.ts @@ -1,372 +1,372 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' import * as v6 from '../v6' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), - v6: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v6.Bundle, - }) - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }), + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }), + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }), + ), + v6: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v6.Bundle, + }), + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), - v6: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v6.FraudProof, - }) - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }), + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }), + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }), + ), + v6: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v6.FraudProof, + }), + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }), + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }), + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }), + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }), + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }), + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }), + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }), + ), } -export const sendDomainSudoCall = { - name: 'Domains.send_domain_sudo_call', - /** - * Submit a domain sudo call. - */ - v6: new CallType( - 'Domains.send_domain_sudo_call', - sts.struct({ - domainId: v6.DomainId, - call: sts.bytes(), - }) - ), +export const sendDomainSudoCall = { + name: 'Domains.send_domain_sudo_call', + /** + * Submit a domain sudo call. + */ + v6: new CallType( + 'Domains.send_domain_sudo_call', + sts.struct({ + domainId: v6.DomainId, + call: sts.bytes(), + }), + ), } -export const freezeDomain = { - name: 'Domains.freeze_domain', - /** - * Freezes a given domain. - * A frozen domain does not accept new bundles but accepts fraud proofs. - */ - v6: new CallType( - 'Domains.freeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), +export const freezeDomain = { + name: 'Domains.freeze_domain', + /** + * Freezes a given domain. + * A frozen domain does not accept new bundles but accepts fraud proofs. + */ + v6: new CallType( + 'Domains.freeze_domain', + sts.struct({ + domainId: v6.DomainId, + }), + ), } -export const unfreezeDomain = { - name: 'Domains.unfreeze_domain', - /** - * Unfreezes a frozen domain. - */ - v6: new CallType( - 'Domains.unfreeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), +export const unfreezeDomain = { + name: 'Domains.unfreeze_domain', + /** + * Unfreezes a frozen domain. + */ + v6: new CallType( + 'Domains.unfreeze_domain', + sts.struct({ + domainId: v6.DomainId, + }), + ), } -export const pruneDomainExecutionReceipt = { - name: 'Domains.prune_domain_execution_receipt', - /** - * Prunes a given execution receipt for given frozen domain. - * This call assumes the execution receipt to be bad and implicitly trusts Sudo - * to do necessary validation of the ER before dispatching this call. - */ - v6: new CallType( - 'Domains.prune_domain_execution_receipt', - sts.struct({ - domainId: v6.DomainId, - badReceiptHash: v6.H256, - }) - ), +export const pruneDomainExecutionReceipt = { + name: 'Domains.prune_domain_execution_receipt', + /** + * Prunes a given execution receipt for given frozen domain. + * This call assumes the execution receipt to be bad and implicitly trusts Sudo + * to do necessary validation of the ER before dispatching this call. + */ + v6: new CallType( + 'Domains.prune_domain_execution_receipt', + sts.struct({ + domainId: v6.DomainId, + badReceiptHash: v6.H256, + }), + ), } -export const transferTreasuryFunds = { - name: 'Domains.transfer_treasury_funds', - /** - * Transfer funds from treasury to given account - */ - v6: new CallType( - 'Domains.transfer_treasury_funds', - sts.struct({ - accountId: v6.AccountId32, - balance: sts.bigint(), - }) - ), +export const transferTreasuryFunds = { + name: 'Domains.transfer_treasury_funds', + /** + * Transfer funds from treasury to given account + */ + v6: new CallType( + 'Domains.transfer_treasury_funds', + sts.struct({ + accountId: v6.AccountId32, + balance: sts.bigint(), + }), + ), } -export const submitReceipt = { - name: 'Domains.submit_receipt', - v6: new CallType( - 'Domains.submit_receipt', - sts.struct({ - singletonReceipt: v6.SealedSingletonReceipt, - }) - ), +export const submitReceipt = { + name: 'Domains.submit_receipt', + v6: new CallType( + 'Domains.submit_receipt', + sts.struct({ + singletonReceipt: v6.SealedSingletonReceipt, + }), + ), } diff --git a/indexers/staking-squid/src/types/domains/constants.ts b/indexers/staking-squid/src/types/domains/constants.ts index a26b47666..aca0daa1d 100644 --- a/indexers/staking-squid/src/types/domains/constants.ts +++ b/indexers/staking-squid/src/types/domains/constants.ts @@ -1,213 +1,153 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType('Domains.MaxNominators', sts.number()), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType('Domains.SudoId', v0.AccountId32), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType('Domains.PalletId', v1.PalletId), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]), + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType('Domains.BundleLongevity', sts.number()), } diff --git a/indexers/staking-squid/src/types/domains/events.ts b/indexers/staking-squid/src/types/domains/events.ts index b75e07ce6..1c6033c74 100644 --- a/indexers/staking-squid/src/types/domains/events.ts +++ b/indexers/staking-squid/src/types/domains/events.ts @@ -1,325 +1,325 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' import * as v6 from '../v6' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }), + ), } -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }), + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }), + ), } -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + ), } -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }), + ), } -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }), + ), } -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), - v6: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - amount: sts.bigint(), - }) - ), +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), + v6: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + amount: sts.bigint(), + }), + ), } -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }), + ), } -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }), + ), } -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }), + ), } -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), } -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }), + ), } -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }), + ), } -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + ), } -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + ), } -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), } -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }), + ), } -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + ), } -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }), + ), } -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }), + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }), + ), } -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }), + ), } -export const nominatedStakedUnlocked = { - name: 'Domains.NominatedStakedUnlocked', - v6: new EventType( - 'Domains.NominatedStakedUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - unlockedAmount: sts.bigint(), - }) - ), +export const nominatedStakedUnlocked = { + name: 'Domains.NominatedStakedUnlocked', + v6: new EventType( + 'Domains.NominatedStakedUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + unlockedAmount: sts.bigint(), + }), + ), } -export const storageFeeUnlocked = { - name: 'Domains.StorageFeeUnlocked', - v6: new EventType( - 'Domains.StorageFeeUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - storageFee: sts.bigint(), - }) - ), +export const storageFeeUnlocked = { + name: 'Domains.StorageFeeUnlocked', + v6: new EventType( + 'Domains.StorageFeeUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + storageFee: sts.bigint(), + }), + ), } -export const nominatorUnlocked = { - name: 'Domains.NominatorUnlocked', - v6: new EventType( - 'Domains.NominatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - }) - ), +export const nominatorUnlocked = { + name: 'Domains.NominatorUnlocked', + v6: new EventType( + 'Domains.NominatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + }), + ), } -export const domainFrozen = { - name: 'Domains.DomainFrozen', - v6: new EventType( - 'Domains.DomainFrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), +export const domainFrozen = { + name: 'Domains.DomainFrozen', + v6: new EventType( + 'Domains.DomainFrozen', + sts.struct({ + domainId: v6.DomainId, + }), + ), } -export const domainUnfrozen = { - name: 'Domains.DomainUnfrozen', - v6: new EventType( - 'Domains.DomainUnfrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), +export const domainUnfrozen = { + name: 'Domains.DomainUnfrozen', + v6: new EventType( + 'Domains.DomainUnfrozen', + sts.struct({ + domainId: v6.DomainId, + }), + ), } -export const prunedExecutionReceipt = { - name: 'Domains.PrunedExecutionReceipt', - v6: new EventType( - 'Domains.PrunedExecutionReceipt', - sts.struct({ - domainId: v6.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), +export const prunedExecutionReceipt = { + name: 'Domains.PrunedExecutionReceipt', + v6: new EventType( + 'Domains.PrunedExecutionReceipt', + sts.struct({ + domainId: v6.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + ), } diff --git a/indexers/staking-squid/src/types/domains/storage.ts b/indexers/staking-squid/src/types/domains/storage.ts index 115361b07..8595532a5 100644 --- a/indexers/staking-squid/src/types/domains/storage.ts +++ b/indexers/staking-squid/src/types/domains/storage.ts @@ -1,468 +1,801 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' import * as v6 from '../v6' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulBundles', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType( + 'Domains.SuccessfulFraudProofs', + 'Default', + [v0.DomainId], + sts.array(() => v0.H256), + ) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, - v6: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v6.RuntimeObject) as RuntimeRegistryV6, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v6.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const runtimeRegistry = { + v0: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v0.RuntimeObject, + ) as RuntimeRegistryV0, + v5: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v5.RuntimeObject, + ) as RuntimeRegistryV5, + v6: new StorageType( + 'Domains.RuntimeRegistry', + 'Optional', + [sts.number()], + v6.RuntimeObject, + ) as RuntimeRegistryV6, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> +} + +export interface RuntimeRegistryV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise + getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: v6.RuntimeObject | undefined][]> + getPairs(block: Block, key: number): Promise<[k: number, v: v6.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: v6.RuntimeObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: v6.RuntimeObject | undefined][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType( + 'Domains.ScheduledRuntimeUpgrades', + 'Optional', + [sts.number(), sts.number()], + v0.ScheduledRuntimeUpgrade, + ) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise + getMany( + block: Block, + keys: [number, number][], + ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[number, number][]> + getPairs( + block: Block, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairs( + block: Block, + key1: number, + key2: number, + ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: number, + key2: number, + ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise +} + +export const operatorIdOwner = { + v0: new StorageType( + 'Domains.OperatorIdOwner', + 'Optional', + [sts.bigint()], + v0.AccountId32, + ) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType( + 'Domains.OperatorSigningKey', + 'Optional', + [sts.bytes()], + sts.bigint(), + ) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: Bytes, + ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> +} + +export const domainStakingSummary = { + v0: new StorageType( + 'Domains.DomainStakingSummary', + 'Optional', + [v0.DomainId], + v0.StakingSummary, + ) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType( + 'Domains.PendingOperatorSwitches', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType( + 'Domains.OperatorEpochSharePrice', + 'Optional', + [sts.bigint(), v0.DomainEpoch], + v0.SharePrice, + ) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.DomainEpoch, + ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Deposit, + ) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType( + 'Domains.Deposits', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Deposit, + ) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v0.AccountId32], + v0.Withdrawal, + ) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType( + 'Domains.Withdrawals', + 'Optional', + [sts.bigint(), v1.AccountId32], + v1.Withdrawal, + ) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v0.AccountId32, + ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairs( + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: bigint, + key2: v1.AccountId32, + ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType( + 'Domains.NominatorCount', + 'Default', + [sts.bigint()], + sts.number(), + ) as NominatorCountV0, } /** @@ -473,28 +806,37 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: number | undefined][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType( + 'Domains.PendingSlashes', + 'Optional', + [v0.DomainId], + sts.array(() => sts.bigint()), + ) as PendingSlashesV0, } /** @@ -502,362 +844,570 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType( + 'Domains.PendingStakingOperationCount', + 'Default', + [v0.DomainId], + sts.number(), + ) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v0.DomainId], + v0.DomainObject, + ) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v1.DomainId], + v1.DomainObject, + ) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType( + 'Domains.DomainRegistry', + 'Optional', + [v5.DomainId], + v5.DomainObject, + ) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairs( + block: Block, + key: v5.DomainId, + ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.DomainId, + ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType( + 'Domains.BlockTree', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v6: new StorageType('Domains.BlockTreeNodes', 'Optional', [v6.H256], v6.BlockTreeNode) as BlockTreeNodesV6, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v0.H256], + v0.BlockTreeNode, + ) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v1.H256], + v1.BlockTreeNode, + ) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v5.H256], + v5.BlockTreeNode, + ) as BlockTreeNodesV5, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v6: new StorageType( + 'Domains.BlockTreeNodes', + 'Optional', + [v6.H256], + v6.BlockTreeNode, + ) as BlockTreeNodesV6, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.H256, + ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v5.H256, + ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.H256): Promise<(v6.BlockTreeNode | undefined)> - getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, +export interface BlockTreeNodesV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.H256): Promise + getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> + getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v6.H256, + ): AsyncIterable<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType( + 'Domains.HeadReceiptNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType( + 'Domains.LatestConfirmedDomainBlockNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType( + 'Domains.HeadReceiptExtended', + 'Default', + [v0.DomainId], + sts.boolean(), + ) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType( + 'Domains.StateRoots', + 'Optional', + [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], + v0.H256, + ) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key: [v0.DomainId, number, v0.H256], + ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v0.DomainId, number, v0.H256], + ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType( + 'Domains.ConsensusBlockHash', + 'Optional', + [v0.DomainId, sts.number()], + v0.H256, + ) as ConsensusBlockHashV0, } /** @@ -865,114 +1415,277 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v0.DomainId, sts.number(), sts.number()], + sts.array(() => v0.BundleDigest), + ) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType( + 'Domains.ExecutionInbox', + 'Default', + [v1.DomainId, sts.number(), sts.number()], + sts.array(() => v1.BundleDigest), + ) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v0.DomainId, number, number][], + ): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v0.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v0.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise + getMany( + block: Block, + keys: [v1.DomainId, number, number][], + ): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[v1.DomainId, number, number][]> + getPairs( + block: Block, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairs( + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key1: v1.DomainId, + key2: number, + key3: number, + ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType( + 'Domains.InboxedBundleAuthor', + 'Optional', + [v0.H256], + sts.bigint(), + ) as InboxedBundleAuthorV0, } /** @@ -980,28 +1693,40 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.H256, + ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType( + 'Domains.HeadDomainNumber', + 'Default', + [v0.DomainId], + sts.number(), + ) as HeadDomainNumberV0, } /** @@ -1010,30 +1735,42 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType( + 'Domains.LastEpochStakingDistribution', + 'Optional', + [v0.DomainId], + v0.ElectionVerificationParams, + ) as LastEpochStakingDistributionV0, } /** @@ -1043,284 +1780,431 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> +} + +export const domainTxRangeState = { + v0: new StorageType( + 'Domains.DomainTxRangeState', + 'Optional', + [v0.DomainId], + v0.TxRangeState, + ) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairs( + block: Block, + key: v0.DomainId, + ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v0.DomainId, + ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType( + 'Domains.LatestConfirmedDomainBlock', + 'Optional', + [v1.DomainId], + v1.ConfirmedDomainBlock, + ) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairs( + block: Block, + key: v1.DomainId, + ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v1.DomainId, + ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType( + 'Domains.LatestSubmittedER', + 'Default', + [sts.tuple(() => [v3.DomainId, sts.bigint()])], + sts.number(), + ) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairs( + block: Block, + key: [v3.DomainId, bigint], + ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: [v3.DomainId, bigint], + ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType( + 'Domains.OperatorHighestSlot', + 'Default', + [sts.bigint()], + sts.bigint(), + ) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint | undefined][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType( + 'Domains.OperatorBundleSlot', + 'Default', + [sts.bigint()], + sts.array(() => sts.bigint()), + ) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: bigint, + ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType( + 'Domains.PermissionedActionAllowedBy', + 'Optional', + [], + v5.PermissionedActionAllowedBy, + ) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType( + 'Domains.AccumulatedTreasuryFunds', + 'Default', + [], + sts.bigint(), + ) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgradeRecords', + 'Default', + [sts.number()], + sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), + ) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> + getMany( + block: Block, + keys: number[], + ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs( + block: Block, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairs( + block: Block, + key: number, + ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: number, + ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType( + 'Domains.DomainRuntimeUpgrades', + 'Default', + [], + sts.array(() => sts.number()), + ) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} - -export const newAddedHeadReceipt = { - /** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ - v6: new StorageType('Domains.NewAddedHeadReceipt', 'Optional', [v6.DomainId], v6.H256) as NewAddedHeadReceiptV6, +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise +} + +export const newAddedHeadReceipt = { + /** + * The hash of the new head receipt added in the current consensus block + * + * Temporary storage only exist during block execution + */ + v6: new StorageType( + 'Domains.NewAddedHeadReceipt', + 'Optional', + [v6.DomainId], + v6.H256, + ) as NewAddedHeadReceiptV6, } /** * The hash of the new head receipt added in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface NewAddedHeadReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.H256 | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> -} - -export const latestConfirmedDomainExecutionReceipt = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v6: new StorageType('Domains.LatestConfirmedDomainExecutionReceipt', 'Optional', [v6.DomainId], v6.ExecutionReceipt) as LatestConfirmedDomainExecutionReceiptV6, +export interface NewAddedHeadReceiptV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.DomainId): Promise + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.H256 | undefined][]> + getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: v6.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v6.DomainId, v: v6.H256 | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v6.DomainId, + ): AsyncIterable<[k: v6.DomainId, v: v6.H256 | undefined][]> +} + +export const latestConfirmedDomainExecutionReceipt = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v6: new StorageType( + 'Domains.LatestConfirmedDomainExecutionReceipt', + 'Optional', + [v6.DomainId], + v6.ExecutionReceipt, + ) as LatestConfirmedDomainExecutionReceiptV6, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainExecutionReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.ExecutionReceipt | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> -} - -export const domainSudoCalls = { - /** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ - v6: new StorageType('Domains.DomainSudoCalls', 'Default', [v6.DomainId], v6.DomainSudoCall) as DomainSudoCallsV6, +export interface LatestConfirmedDomainExecutionReceiptV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.DomainId): Promise + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> + getPairs( + block: Block, + key: v6.DomainId, + ): Promise<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v6.DomainId, + ): AsyncIterable<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> +} + +export const domainSudoCalls = { + /** + * Temporary storage to hold the sudo calls meant for the Domains. + * Storage is cleared when there are any successful bundles in the next block. + * Only one sudo call is allowed per domain per consensus block. + */ + v6: new StorageType( + 'Domains.DomainSudoCalls', + 'Default', + [v6.DomainId], + v6.DomainSudoCall, + ) as DomainSudoCallsV6, } /** @@ -1328,35 +2212,50 @@ export const domainSudoCalls = { * Storage is cleared when there are any successful bundles in the next block. * Only one sudo call is allowed per domain per consensus block. */ -export interface DomainSudoCallsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainSudoCall - get(block: Block, key: v6.DomainId): Promise<(v6.DomainSudoCall | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> -} - -export const frozenDomains = { - /** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ - v6: new StorageType('Domains.FrozenDomains', 'Default', [], sts.array(() => v6.DomainId)) as FrozenDomainsV6, +export interface DomainSudoCallsV6 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v6.DomainSudoCall + get(block: Block, key: v6.DomainId): Promise + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> + getPairs( + block: Block, + key: v6.DomainId, + ): Promise<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + ): AsyncIterable<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> + getPairsPaged( + pageSize: number, + block: Block, + key: v6.DomainId, + ): AsyncIterable<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> +} + +export const frozenDomains = { + /** + * Storage that hold a list of all frozen domains. + * A frozen domain does not accept the bundles but does accept a fraud proof. + */ + v6: new StorageType( + 'Domains.FrozenDomains', + 'Default', + [], + sts.array(() => v6.DomainId), + ) as FrozenDomainsV6, } /** * Storage that hold a list of all frozen domains. * A frozen domain does not accept the bundles but does accept a fraud proof. */ -export interface FrozenDomainsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainId[] - get(block: Block): Promise<(v6.DomainId[] | undefined)> +export interface FrozenDomainsV6 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v6.DomainId[] + get(block: Block): Promise } diff --git a/indexers/staking-squid/src/types/support.ts b/indexers/staking-squid/src/types/support.ts index 456dfc2fb..53e364bb5 100644 --- a/indexers/staking-squid/src/types/support.ts +++ b/indexers/staking-squid/src/types/support.ts @@ -1,142 +1,146 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' +import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' +import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' - -export {sts, Bytes, BitSequence, Option, Result} - +export { sts, Bytes, BitSequence, Option, Result } export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } - export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } - interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } - export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } - export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor( + public readonly name: QualifiedName, + private type: T, + ) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } - export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor( + private name: QualifiedName, + private type: T, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } - export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type, + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged( + pageSize: number, + block: Block, + ...args: any[] + ): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/staking-squid/src/types/v0.ts b/indexers/staking-squid/src/types/v0.ts index f573774c5..27aead3f7 100644 --- a/indexers/staking-squid/src/types/v0.ts +++ b/indexers/staking-squid/src/types/v0.ts @@ -1,281 +1,288 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: [DomainEpoch, number, bigint] | undefined } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => + sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), + ), + } }) export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -287,115 +294,118 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export type AccountId32 = Bytes export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -403,32 +413,34 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -436,33 +448,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -470,463 +482,483 @@ export type DomainId = number export type H256 = Bytes export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const Randomness = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type Randomness = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export const Slot = sts.bigint() export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader } export type Slot = bigint -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle +export type SlashedReason = + | SlashedReason_BadExecutionReceipt + | SlashedReason_BundleEquivocation + | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export const AccountId32 = sts.bytes() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const H256 = sts.bytes() diff --git a/indexers/staking-squid/src/types/v1.ts b/indexers/staking-squid/src/types/v1.ts index 0b5706a56..a1d3b1246 100644 --- a/indexers/staking-squid/src/types/v1.ts +++ b/indexers/staking-squid/src/types/v1.ts @@ -1,199 +1,204 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export const PalletId = sts.bytes() export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -201,688 +206,712 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: WithdrawalInShares | undefined } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export type AccountId32 = Bytes export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) + known: KnownDeposit + pending?: PendingDeposit | undefined } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = + sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } -}) + }) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export const Slot = sts.bigint() export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader } export type Slot = bigint -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle +export type FraudProof = + | FraudProof_BundleEquivocation + | FraudProof_ImproperTransactionSortition + | FraudProof_InvalidBlockFees + | FraudProof_InvalidBundles + | FraudProof_InvalidDomainBlockHash + | FraudProof_InvalidExtrinsicsRoot + | FraudProof_InvalidStateTransition + | FraudProof_InvalidTransaction + | FraudProof_InvalidTransfers + | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes diff --git a/indexers/staking-squid/src/types/v3.ts b/indexers/staking-squid/src/types/v3.ts index 81adc1468..15bd51179 100644 --- a/indexers/staking-squid/src/types/v3.ts +++ b/indexers/staking-squid/src/types/v3.ts @@ -1,46 +1,50 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export type DomainId = number export const DomainId = sts.number() export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint } -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed +export type OperatorStatus = + | OperatorStatus_Deregistered + | OperatorStatus_PendingSlash + | OperatorStatus_Registered + | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -48,36 +52,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) diff --git a/indexers/staking-squid/src/types/v5.ts b/indexers/staking-squid/src/types/v5.ts index 4735ccf0d..96bbbfdac 100644 --- a/indexers/staking-squid/src/types/v5.ts +++ b/indexers/staking-squid/src/types/v5.ts @@ -1,26 +1,28 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = + | PermissionedActionAllowedBy_Accounts + | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -28,162 +30,167 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidBundleWeight + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -191,150 +198,153 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw +export type MultiAccountId = + | MultiAccountId_AccountId20 + | MultiAccountId_AccountId32 + | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -344,72 +354,76 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() export const StorageKey = sts.bytes() -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( + () => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } -}) + }, +) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -417,562 +431,583 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = + sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } -}) + }) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = + sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } -}) + }) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) + blockDigest: BlockDigestProof + newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = + | InvalidBundlesProofData_Bundle + | InvalidBundlesProofData_BundleAndExecution + | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle +export type FraudProofVariant = + | FraudProofVariant_InvalidBlockFees + | FraudProofVariant_InvalidBundles + | FraudProofVariant_InvalidDomainBlockHash + | FraudProofVariant_InvalidExtrinsicsRoot + | FraudProofVariant_InvalidStateTransition + | FraudProofVariant_InvalidTransfers + | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: ConsensusChainMmrLeafProof | undefined + maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/staking-squid/src/types/v6.ts b/indexers/staking-squid/src/types/v6.ts index 91f2e1d24..475e801af 100644 --- a/indexers/staking-squid/src/types/v6.ts +++ b/indexers/staking-squid/src/types/v6.ts @@ -1,166 +1,172 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' +import { sts, Result, Option, Bytes, BitSequence } from './support' export interface DomainSudoCall { - maybeCall?: (Bytes | undefined) + maybeCall?: Bytes | undefined } export const DomainSudoCall: sts.Type = sts.struct(() => { - return { - maybeCall: sts.option(() => sts.bytes()), - } + return { + maybeCall: sts.option(() => sts.bytes()), + } }) export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx +export type InvalidBundleType = + | InvalidBundleType_IllegalTx + | InvalidBundleType_InherentExtrinsic + | InvalidBundleType_InvalidBundleWeight + | InvalidBundleType_InvalidXDM + | InvalidBundleType_OutOfRangeTx + | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export type DomainId = number @@ -168,44 +174,44 @@ export type DomainId = number export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - instanceCount: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + instanceCount: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -215,46 +221,48 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - instanceCount: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + instanceCount: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => + sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), + ), + } }) export const StorageData = sts.bytes() @@ -262,627 +270,649 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) export const SealedSingletonReceipt: sts.Type = sts.struct(() => { - return { - singletonReceipt: SingletonReceipt, - signature: sts.bytes(), - } + return { + singletonReceipt: SingletonReceipt, + signature: sts.bytes(), + } }) export const SingletonReceipt: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface SingletonReceipt { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt + proofOfElection: ProofOfElection + receipt: ExecutionReceipt } export interface SealedSingletonReceipt { - singletonReceipt: SingletonReceipt - signature: Bytes + singletonReceipt: SingletonReceipt + signature: Bytes } export const H256 = sts.bytes() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = + | ApplyExtrinsicMismatch_Shorter + | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock +export type ExecutionPhase = + | ExecutionPhase_ApplyExtrinsic + | ExecutionPhase_FinalizeBlock + | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), +export const DomainInherentExtrinsicDataProof: sts.Type = + sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, + maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), } -}) + }) export const DomainSudoCallStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainSudoCallStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = + sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } -}) + }) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = + sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } -}) + }) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) + blockDigest: BlockDigestProof + newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof - maybeDomainSudoCallProof?: (DomainSudoCallStorageProof | undefined) + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + maybeDomainSudoCallProof?: DomainSudoCallStorageProof | undefined } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => + sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), + ), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [Bytes | undefined, ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - InvalidXDMProofData: sts.enumStruct({ - extrinsicProof: StorageProof, - mmrRootProof: sts.option(() => MmrRootProof), - }), - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + InvalidXDMProofData: sts.enumStruct({ + extrinsicProof: StorageProof, + mmrRootProof: sts.option(() => MmrRootProof), + }), + } }) export const MmrRootProof: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - mmrRootStorageProof: MmrRootStorageProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + mmrRootStorageProof: MmrRootStorageProof, + } }) export const MmrRootStorageProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface MmrRootStorageProof { - storageProof: StorageProof + storageProof: StorageProof } export interface MmrRootProof { - mmrProof: ConsensusChainMmrLeafProof - mmrRootStorageProof: MmrRootStorageProof + mmrProof: ConsensusChainMmrLeafProof + mmrRootStorageProof: MmrRootStorageProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: LeafProof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: LeafProof } export interface LeafProof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic | InvalidBundlesProofData_InvalidXDMProofData +export type InvalidBundlesProofData = + | InvalidBundlesProofData_Bundle + | InvalidBundlesProofData_BundleAndExecution + | InvalidBundlesProofData_Extrinsic + | InvalidBundlesProofData_InvalidXDMProofData export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProofData_InvalidXDMProofData { - __kind: 'InvalidXDMProofData' - extrinsicProof: StorageProof - mmrRootProof?: (MmrRootProof | undefined) + __kind: 'InvalidXDMProofData' + extrinsicProof: StorageProof + mmrRootProof?: MmrRootProof | undefined } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle +export type FraudProofVariant = + | FraudProofVariant_InvalidBlockFees + | FraudProofVariant_InvalidBundles + | FraudProofVariant_InvalidDomainBlockHash + | FraudProofVariant_InvalidExtrinsicsRoot + | FraudProofVariant_InvalidStateTransition + | FraudProofVariant_InvalidTransfers + | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: LeafProof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: LeafProof, + } }) export const LeafProof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: ConsensusChainMmrLeafProof | undefined + maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const DomainId = sts.number() diff --git a/indexers/staking-squid/src/utils/cache.ts b/indexers/staking-squid/src/utils/cache.ts index 8b6fa7268..ded9ce789 100644 --- a/indexers/staking-squid/src/utils/cache.ts +++ b/indexers/staking-squid/src/utils/cache.ts @@ -1,5 +1,5 @@ -import { Store } from "@subsquid/typeorm-store"; -import { Entity } from "@subsquid/typeorm-store/src/store"; +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' import { Account, Bundle, @@ -17,47 +17,42 @@ import { StatsPerNominator, StatsPerOperator, Withdrawal, -} from "../model"; -import type { Ctx } from "../processor"; +} from '../model' +import type { Ctx } from '../processor' export type PermanentCache = { - domains: Map; - accounts: Map; - operators: Map; - nominators: Map; - deposits: Map; - withdrawals: Map; - domainEpochs: Map; -}; + domains: Map + accounts: Map + operators: Map + nominators: Map + deposits: Map + withdrawals: Map + domainEpochs: Map +} export type TemporaryCache = { - bundles: Map; - bundleAuthors: Map; - domainBlocks: Map; - operatorRewardedEvents: Map; - stats: Map; - statsPerDomain: Map; - statsPerOperator: Map; - statsPerAccount: Map; - statsPerNominator: Map; -}; - -export type LastBlockBundleIndexKey = - `lastBlockBundleIndex:${string}-${string}`; -export type AllTimeHighStakedKey = `allTimeHighStaked:${string}`; -export type AllTimeHighSharePriceKey = - `allTimeHighSharePrice:${string}:${string}`; -type InternalKeyStore = - | LastBlockBundleIndexKey - | AllTimeHighStakedKey - | AllTimeHighSharePriceKey; + bundles: Map + bundleAuthors: Map + domainBlocks: Map + operatorRewardedEvents: Map + stats: Map + statsPerDomain: Map + statsPerOperator: Map + statsPerAccount: Map + statsPerNominator: Map +} + +export type LastBlockBundleIndexKey = `lastBlockBundleIndex:${string}-${string}` +export type AllTimeHighStakedKey = `allTimeHighStaked:${string}` +export type AllTimeHighSharePriceKey = `allTimeHighSharePrice:${string}:${string}` +type InternalKeyStore = LastBlockBundleIndexKey | AllTimeHighStakedKey | AllTimeHighSharePriceKey type CacheManager = { - isModified: boolean; - internalKeyStore: Map; -}; + isModified: boolean + internalKeyStore: Map +} -export type Cache = PermanentCache & TemporaryCache & CacheManager; +export type Cache = PermanentCache & TemporaryCache & CacheManager export const initPermanentCache: PermanentCache = { domains: new Map(), @@ -67,7 +62,7 @@ export const initPermanentCache: PermanentCache = { deposits: new Map(), withdrawals: new Map(), domainEpochs: new Map(), -}; +} export const initTemporaryCache: TemporaryCache = { bundles: new Map(), @@ -79,48 +74,41 @@ export const initTemporaryCache: TemporaryCache = { statsPerOperator: new Map(), statsPerAccount: new Map(), statsPerNominator: new Map(), -}; +} export const initCacheManager: CacheManager = { isModified: false, internalKeyStore: new Map(), -}; +} export const initCache: Cache = { ...initPermanentCache, ...initTemporaryCache, ...initCacheManager, -}; +} export const load = async (ctx: Ctx): Promise => { - const [ - domains, - accounts, - operators, - nominators, - deposits, - withdrawals, - domainEpochs, - ] = await Promise.all([ - ctx.store.find(Domain), - ctx.store.find(Account), - ctx.store.find(Operator), - ctx.store.find(Nominator), - ctx.store.find(Deposit), - ctx.store.find(Withdrawal), - ctx.store.find(DomainEpoch), - ]); + const [domains, accounts, operators, nominators, deposits, withdrawals, domainEpochs] = + await Promise.all([ + ctx.store.find(Domain), + ctx.store.find(Account), + ctx.store.find(Operator), + ctx.store.find(Nominator), + ctx.store.find(Deposit), + ctx.store.find(Withdrawal), + ctx.store.find(DomainEpoch), + ]) console.log( - "\x1b[32mLoaded in cache:\x1b[0m", - domains.length + " domains, ", - accounts.length + " accounts, ", - operators.length + " operators, ", - nominators.length + " nominators, ", - deposits.length + " deposits, ", - withdrawals.length + " withdrawals, ", - domainEpochs.length + " domainEpochs" - ); + '\x1b[32mLoaded in cache:\x1b[0m', + domains.length + ' domains, ', + accounts.length + ' accounts, ', + operators.length + ' operators, ', + nominators.length + ' nominators, ', + deposits.length + ' deposits, ', + withdrawals.length + ' withdrawals, ', + domainEpochs.length + ' domainEpochs', + ) return { ...initCache, @@ -131,71 +119,65 @@ export const load = async (ctx: Ctx): Promise => { deposits: new Map(deposits.map((d) => [d.id, d])), withdrawals: new Map(withdrawals.map((w) => [w.id, w])), domainEpochs: new Map(domainEpochs.map((de) => [de.id, de])), - }; -}; - -const saveEntry = async ( - ctx: Ctx, - cache: Cache, - name: keyof Cache -) => { + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { try { - const entity = cache[name] as unknown as Map; - if (entity.size === 0) return; + const entity = cache[name] as unknown as Map + if (entity.size === 0) return - await ctx.store.save(Array.from(entity.values())); + await ctx.store.save(Array.from(entity.values())) } catch (e) { - console.error(`Failed to save ${name} with error:`, e); + console.error(`Failed to save ${name} with error:`, e) } -}; +} const logEntry = (name: string, entry: Map) => - entry.size > 0 ? entry.size + " " + name + ", " : ""; + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving - if (!cache.isModified) return; - - let logPerm = logEntry("domains", cache.domains); - logPerm += logEntry("accounts", cache.accounts); - logPerm += logEntry("operators", cache.operators); - logPerm += logEntry("nominators", cache.nominators); - logPerm += logEntry("deposits", cache.deposits); - logPerm += logEntry("withdrawals", cache.withdrawals); - logPerm += logEntry("domainEpochs", cache.domainEpochs); - - let logTemp = logEntry("bundles", cache.bundles); - logTemp += logEntry("bundleAuthors", cache.bundleAuthors); - logTemp += logEntry("domainBlocks", cache.domainBlocks); - logTemp += logEntry("operatorRewardedEvents", cache.operatorRewardedEvents); - logTemp += logEntry("stats", cache.stats); - logTemp += logEntry("statsPerDomain", cache.statsPerDomain); - logTemp += logEntry("statsPerOperator", cache.statsPerOperator); - logTemp += logEntry("statsPerAccount", cache.statsPerAccount); - logTemp += logEntry("statsPerNominator", cache.statsPerNominator); - - console.log("\x1b[34mSaving in database:\x1b[0m", logPerm); - console.log(" and ", logTemp, "\n"); + if (!cache.isModified) return + + let logPerm = logEntry('domains', cache.domains) + logPerm += logEntry('accounts', cache.accounts) + logPerm += logEntry('operators', cache.operators) + logPerm += logEntry('nominators', cache.nominators) + logPerm += logEntry('deposits', cache.deposits) + logPerm += logEntry('withdrawals', cache.withdrawals) + logPerm += logEntry('domainEpochs', cache.domainEpochs) + + let logTemp = logEntry('bundles', cache.bundles) + logTemp += logEntry('bundleAuthors', cache.bundleAuthors) + logTemp += logEntry('domainBlocks', cache.domainBlocks) + logTemp += logEntry('operatorRewardedEvents', cache.operatorRewardedEvents) + logTemp += logEntry('stats', cache.stats) + logTemp += logEntry('statsPerDomain', cache.statsPerDomain) + logTemp += logEntry('statsPerOperator', cache.statsPerOperator) + logTemp += logEntry('statsPerAccount', cache.statsPerAccount) + logTemp += logEntry('statsPerNominator', cache.statsPerNominator) + + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') await Promise.all( Object.keys(cache).map((k) => - !Object.keys(initCacheManager).includes(k) - ? saveEntry(ctx, cache, k as keyof Cache) - : null - ) - ); + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) // Clear the cache for entries not needed for reference - cache.internalKeyStore.clear(); - cache.bundles.clear(); - cache.bundleAuthors.clear(); - cache.operatorRewardedEvents.clear(); - cache.domainBlocks.clear(); - cache.stats.clear(); - cache.statsPerDomain.clear(); - cache.statsPerOperator.clear(); - cache.statsPerAccount.clear(); - cache.statsPerNominator.clear(); - - cache.isModified = false; -}; + cache.internalKeyStore.clear() + cache.bundles.clear() + cache.bundleAuthors.clear() + cache.operatorRewardedEvents.clear() + cache.domainBlocks.clear() + cache.stats.clear() + cache.statsPerDomain.clear() + cache.statsPerOperator.clear() + cache.statsPerAccount.clear() + cache.statsPerNominator.clear() + + cache.isModified = false +} diff --git a/indexers/staking-squid/src/utils/index.ts b/indexers/staking-squid/src/utils/index.ts index a2eda3ccf..6b3fbef5a 100644 --- a/indexers/staking-squid/src/utils/index.ts +++ b/indexers/staking-squid/src/utils/index.ts @@ -1,80 +1,75 @@ -import { DEFAULT_SS58_FORMAT } from "@autonomys/auto-utils"; -import { codec } from "@subsquid/ss58"; -import type { Store } from "@subsquid/typeorm-store"; -import { decodeHex } from "@subsquid/util-internal-hex"; -import type { CtxBlock, ProcessorContext } from "../processor"; +import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { codec } from '@subsquid/ss58' +import type { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' -export const SHARES_CALCULATION_MULTIPLIER = BigInt(1000000000000); +export const SHARES_CALCULATION_MULTIPLIER = BigInt(1000000000000) export const hexToAccount = (hex: string): string => { try { - return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)); + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) } catch (error) { - console.error("Failed to convert hex to account:", error); - return ""; + console.error('Failed to convert hex to account:', error) + return '' } -}; +} export const getCallSigner = ( - call: ProcessorContext["blocks"][0]["extrinsics"][0]["call"] + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], ): string => { try { - return hexToAccount((call as any).origin.value.value); + return hexToAccount((call as any).origin.value.value) } catch (error) { - console.error("Failed to get call signer:", error); - return ""; + console.error('Failed to get call signer:', error) + return '' } -}; +} export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - arr ? [...arr, item] : [item]; + arr ? [...arr, item] : [item] -export const getBlockNumber = (block: CtxBlock): number => block.header.height; +export const getBlockNumber = (block: CtxBlock): number => block.header.height -export const getTimestamp = (block: CtxBlock): Date => - new Date(block.header.timestamp ?? 0); +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) -export const domainUID = (domainId: number): string => `${domainId}`; +export const domainUID = (domainId: number): string => `${domainId}` -export const operatorUID = (operatorId: number): string => `${operatorId}`; +export const operatorUID = (operatorId: number): string => `${operatorId}` export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}`; + `${operatorId}-${account}` export const bundleUID = ( domainId: number | string, domainBlockHeight: number | string, - domainBlockBundleIndex: number | string -): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}`; + domainBlockBundleIndex: number | string, +): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}` -export const epochUID = ( - domainId: number | string, - epoch: number | string -): string => `${domainId}-${epoch}`; +export const epochUID = (domainId: number | string, epoch: number | string): string => + `${domainId}-${epoch}` -export const blockUID = ( - domainId: number | string, - blockNumber: number | string -): string => `${domainId}-${blockNumber}`; +export const blockUID = (domainId: number | string, blockNumber: number | string): string => + `${domainId}-${blockNumber}` export const depositUID = ( operatorId: number | string, accountId: string, - depositIndex: number | string -): string => `${operatorId}-${accountId}-${depositIndex}`; + depositIndex: number | string, +): string => `${operatorId}-${accountId}-${depositIndex}` export const withdrawalUID = ( operatorId: number | string, accountId: string, - withdrawalIndex: number | string -): string => `${operatorId}-${accountId}-${withdrawalIndex}`; + withdrawalIndex: number | string, +): string => `${operatorId}-${accountId}-${withdrawalIndex}` export const logBlock = (blocks: CtxBlock[]): void => { - const from = getBlockNumber(blocks[0]); - const to = getBlockNumber(blocks[blocks.length - 1]); + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) return console.log( - "\x1b[33mProcessing " + blocks.length + " blocks\x1b[0m", - "From " + from, - "to " + to + " (" + (to - from) + " blocks)" - ); -}; + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) +} diff --git a/package.json b/package.json index 7ae1cc83d..6528726c4 100644 --- a/package.json +++ b/package.json @@ -24,12 +24,21 @@ "down": "docker compose down", "db": "lerna run start --scope=db", "db:metadata": "lerna run metadata --scope=db", - "sqd:typegen": "lerna run typegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "sqd:codegen": "lerna run codegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "sqd:migration": "lerna run migration --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "sqd:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "sqd:process": "lerna run process --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "sqd": "sqd:typegen && sqd:codegen && sqd:migration && sqd:build && sqd:process" + "explorer:dev": "lerna run dev --scope=explorer", + "explorer:codegen": "lerna run codegen --scope=explorer", + "explorer:build": "lerna run build --scope=explorer", + "explorer:test": "lerna run test --scope=explorer", + "explorer:lint": "lerna run lint --scope=explorer", + "explorer:lint:fix": "lerna run lint:fix --scope=explorer", + "explorer:format": "lerna run format --scope=explorer", + "explorer:all": "lerna run all --scope=explorer", + "indexers:typegen": "lerna run typegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:codegen": "lerna run codegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:migration": "lerna run migration --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:process": "lerna run process --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:format": "lerna run format --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:all": "indexers:typegen && indexers:codegen && indexers:migration && indexers:build && indexers:process && indexers:process" }, "devDependencies": { "lerna": "^8.1.8" From 3a0f965e456491ba89b2bb952df94951d64b2b21 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:55:09 -0400 Subject: [PATCH 18/42] add missing dependencies --- indexers/consensus-squid/package.json | 1 + indexers/leaderboard-squid/package.json | 1 + indexers/staking-squid/package.json | 1 + package.json | 12 ++++--- yarn.lock | 42 ++++++++++++------------- 5 files changed, 32 insertions(+), 25 deletions(-) diff --git a/indexers/consensus-squid/package.json b/indexers/consensus-squid/package.json index a84661d7b..322f5f1c4 100644 --- a/indexers/consensus-squid/package.json +++ b/indexers/consensus-squid/package.json @@ -40,6 +40,7 @@ "devDependencies": { "@subsquid/substrate-metadata-explorer": "^3.1.2", "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/substrate-runtime": "^2.0.0", "@subsquid/typeorm-codegen": "^2.0.0", "@types/node": "^20.12.7", "typescript": "^5.4.5" diff --git a/indexers/leaderboard-squid/package.json b/indexers/leaderboard-squid/package.json index caae3ea38..20cc3046e 100644 --- a/indexers/leaderboard-squid/package.json +++ b/indexers/leaderboard-squid/package.json @@ -41,6 +41,7 @@ "@subsquid/substrate-metadata-explorer": "^3.1.2", "@subsquid/substrate-typegen": "^8.1.0", "@subsquid/typeorm-codegen": "^2.0.0", + "@subsquid/substrate-runtime": "^2.0.0", "@types/node": "^20.12.7", "typescript": "^5.4.5" } diff --git a/indexers/staking-squid/package.json b/indexers/staking-squid/package.json index 41d16405b..761117eab 100644 --- a/indexers/staking-squid/package.json +++ b/indexers/staking-squid/package.json @@ -41,6 +41,7 @@ "@subsquid/substrate-metadata-explorer": "^3.1.2", "@subsquid/substrate-typegen": "^8.1.0", "@subsquid/typeorm-codegen": "^2.0.0", + "@subsquid/substrate-runtime": "^2.0.0", "@types/node": "^20.12.7", "typescript": "^5.4.5" } diff --git a/package.json b/package.json index 6528726c4..7edbab692 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,14 @@ "bugs": { "url": "https://github.com/autonomys/astral/issues" }, - "workspaces": [ - "indexers/*", - "explorer" - ], + "workspaces": { + "packages": [ + "indexers/consensus-squid", + "indexers/leaderboard-squid", + "indexers/staking-squid", + "explorer" + ] + }, "scripts": { "up": "docker compose up", "down": "docker compose down", diff --git a/yarn.lock b/yarn.lock index 51d30a7b3..7b94873d2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4083,6 +4083,13 @@ "@subsquid/util-internal-hex" "^1.2.2" "@subsquid/util-internal-json" "^1.2.2" +"@subsquid/scale-type-system@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz#bdbe03602b44a7d3a82d2ee7147307cefad502eb" + integrity sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg== + dependencies: + "@subsquid/util-internal" "^3.0.0" + "@subsquid/ss58-codec@^1.2.3": version "1.2.3" resolved "https://registry.yarnpkg.com/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz#7a139ea59357cac7290719f08452a15828fbd3f6" @@ -4157,6 +4164,19 @@ "@subsquid/util-internal-range" "^0.3.0" "@subsquid/util-internal-validation" "^0.5.0" +"@subsquid/substrate-runtime@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz#c887757f27a2a979f6a8a4440372712861aec8a5" + integrity sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw== + dependencies: + "@subsquid/scale-codec" "^4.0.1" + "@subsquid/scale-type-system" "^1.0.2" + "@subsquid/util-internal" "^3.1.0" + "@subsquid/util-internal-hex" "^1.2.2" + "@subsquid/util-naming" "^1.2.2" + "@subsquid/util-xxhash" "^1.2.2" + blake2b "^2.1.4" + "@subsquid/substrate-typegen@^8.1.0": version "8.1.0" resolved "https://registry.yarnpkg.com/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz#b5a523b3e86902aa0116eca5a2cc9757e28753f3" @@ -5776,7 +5796,7 @@ axe-core@^4.9.1: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -axios@^1.6.0, axios@^1.7.4: +axios@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== @@ -6190,13 +6210,6 @@ cfb@~1.2.1: adler-32 "~1.3.0" crc-32 "~1.2.0" -chalk-template@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" - integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== - dependencies: - chalk "^5.2.0" - chalk@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -6230,11 +6243,6 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== - change-case-all@1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" @@ -8772,14 +8780,6 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" -hasura-cli@2.36.2: - version "2.36.2" - resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" - integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== - dependencies: - axios "^1.6.0" - chalk-template "^1.1.0" - header-case@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" From d6ec92509682507d7837562b19cb449fd16b408e Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 21:56:30 -0400 Subject: [PATCH 19/42] run typegen and build in indexers/ --- ...03054399-Data.js => 1724205335442-Data.js} | 4 +- .../src/types/balances/calls.ts | 202 +- .../src/types/balances/constants.ts | 83 +- .../src/types/balances/events.ts | 534 +- .../src/types/balances/storage.ts | 471 +- .../src/types/domains/calls.ts | 486 +- .../src/types/domains/constants.ts | 358 +- .../src/types/domains/events.ts | 490 +- .../src/types/domains/storage.ts | 2748 ++++----- .../src/types/messenger/calls.ts | 258 +- .../src/types/messenger/constants.ts | 30 +- .../src/types/messenger/events.ts | 266 +- .../src/types/messenger/storage.ts | 630 +-- .../consensus-squid/src/types/mmr/storage.ts | 87 +- .../src/types/offences-subspace/events.ts | 30 +- .../src/types/offences-subspace/storage.ts | 177 +- .../src/types/rewards/calls.ts | 26 +- .../src/types/rewards/constants.ts | 83 +- .../src/types/rewards/events.ts | 50 +- .../src/types/rewards/storage.ts | 112 +- .../src/types/runtime-configs/calls.ts | 90 +- .../src/types/runtime-configs/storage.ts | 111 +- .../src/types/subspace-mmr/storage.ts | 48 +- .../src/types/subspace/calls.ts | 129 +- .../src/types/subspace/constants.ts | 214 +- .../src/types/subspace/events.ts | 52 +- .../src/types/subspace/storage.ts | 607 +- .../consensus-squid/src/types/sudo/calls.ts | 297 +- .../consensus-squid/src/types/sudo/events.ts | 115 +- .../consensus-squid/src/types/sudo/storage.ts | 18 +- indexers/consensus-squid/src/types/support.ts | 234 +- .../consensus-squid/src/types/system/calls.ts | 246 +- .../src/types/system/constants.ts | 88 +- .../src/types/system/events.ts | 155 +- .../src/types/system/storage.ts | 599 +- .../src/types/timestamp/calls.ts | 24 +- .../src/types/timestamp/constants.ts | 25 +- .../src/types/timestamp/storage.ts | 46 +- .../src/types/transaction-fees/constants.ts | 58 +- .../src/types/transaction-fees/events.ts | 98 +- .../src/types/transaction-fees/storage.ts | 116 +- .../types/transaction-payment/constants.ts | 55 +- .../src/types/transaction-payment/events.ts | 30 +- .../src/types/transaction-payment/storage.ts | 36 +- .../src/types/transporter/calls.ts | 26 +- .../src/types/transporter/events.ts | 154 +- .../src/types/transporter/storage.ts | 311 +- .../src/types/utility/calls.ts | 608 +- .../src/types/utility/constants.ts | 15 +- .../src/types/utility/events.ts | 120 +- indexers/consensus-squid/src/types/v0.ts | 4924 ++++++++--------- indexers/consensus-squid/src/types/v1.ts | 4379 +++++++-------- indexers/consensus-squid/src/types/v3.ts | 2539 ++++----- indexers/consensus-squid/src/types/v5.ts | 4573 +++++++-------- .../src/types/vesting/calls.ts | 87 +- .../src/types/vesting/constants.ts | 15 +- .../src/types/vesting/events.ts | 74 +- .../src/types/vesting/storage.ts | 59 +- ...03054403-Data.js => 1724205335447-Data.js} | 4 +- .../src/types/balances/calls.ts | 202 +- .../src/types/balances/constants.ts | 83 +- .../src/types/balances/events.ts | 534 +- .../src/types/balances/storage.ts | 471 +- .../src/types/domains/calls.ts | 486 +- .../src/types/domains/constants.ts | 358 +- .../src/types/domains/events.ts | 490 +- .../src/types/domains/storage.ts | 2748 ++++----- .../src/types/rewards/calls.ts | 26 +- .../src/types/rewards/constants.ts | 83 +- .../src/types/rewards/events.ts | 50 +- .../src/types/rewards/storage.ts | 112 +- .../src/types/subspace/calls.ts | 129 +- .../src/types/subspace/constants.ts | 214 +- .../src/types/subspace/events.ts | 52 +- .../src/types/subspace/storage.ts | 607 +- .../leaderboard-squid/src/types/support.ts | 234 +- .../src/types/system/calls.ts | 246 +- .../src/types/system/constants.ts | 88 +- .../src/types/system/events.ts | 155 +- .../src/types/system/storage.ts | 599 +- .../src/types/transaction-fees/constants.ts | 58 +- .../src/types/transaction-fees/events.ts | 98 +- .../src/types/transaction-fees/storage.ts | 116 +- .../types/transaction-payment/constants.ts | 55 +- .../src/types/transaction-payment/events.ts | 30 +- .../src/types/transaction-payment/storage.ts | 36 +- indexers/leaderboard-squid/src/types/v0.ts | 3583 ++++++------ indexers/leaderboard-squid/src/types/v1.ts | 3006 +++++----- indexers/leaderboard-squid/src/types/v3.ts | 199 +- indexers/leaderboard-squid/src/types/v5.ts | 2981 +++++----- ...03054265-Data.js => 1724205335447-Data.js} | 4 +- .../staking-squid/src/types/domains/calls.ts | 648 +-- .../src/types/domains/constants.ts | 358 +- .../staking-squid/src/types/domains/events.ts | 534 +- .../src/types/domains/storage.ts | 3031 ++++------ indexers/staking-squid/src/types/support.ts | 234 +- indexers/staking-squid/src/types/v0.ts | 1036 ++-- indexers/staking-squid/src/types/v1.ts | 997 ++-- indexers/staking-squid/src/types/v3.ts | 94 +- indexers/staking-squid/src/types/v5.ts | 1043 ++-- indexers/staking-squid/src/types/v6.ts | 948 ++-- 101 files changed, 25333 insertions(+), 30227 deletions(-) rename indexers/consensus-squid/db/migrations/{1724203054399-Data.js => 1724205335442-Data.js} (99%) rename indexers/leaderboard-squid/db/migrations/{1724203054403-Data.js => 1724205335447-Data.js} (99%) rename indexers/staking-squid/db/migrations/{1724203054265-Data.js => 1724205335447-Data.js} (99%) diff --git a/indexers/consensus-squid/db/migrations/1724203054399-Data.js b/indexers/consensus-squid/db/migrations/1724205335442-Data.js similarity index 99% rename from indexers/consensus-squid/db/migrations/1724203054399-Data.js rename to indexers/consensus-squid/db/migrations/1724205335442-Data.js index 593a88a94..fc8c88e6f 100644 --- a/indexers/consensus-squid/db/migrations/1724203054399-Data.js +++ b/indexers/consensus-squid/db/migrations/1724205335442-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724203054399 { - name = 'Data1724203054399' +module.exports = class Data1724205335442 { + name = 'Data1724205335442' async up(db) { await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) diff --git a/indexers/consensus-squid/src/types/balances/calls.ts b/indexers/consensus-squid/src/types/balances/calls.ts index 609cb43de..03fbec1ea 100644 --- a/indexers/consensus-squid/src/types/balances/calls.ts +++ b/indexers/consensus-squid/src/types/balances/calls.ts @@ -1,119 +1,119 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v5 from '../v5' -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }), - ), +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }) + ), } -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }), - ), +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }) + ), } -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }), - ), +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }) + ), } -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }), - ), +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }) + ), } -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }), - ), +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/balances/constants.ts b/indexers/consensus-squid/src/types/balances/constants.ts index aac0c6f9e..5cab2c7e3 100644 --- a/indexers/consensus-squid/src/types/balances/constants.ts +++ b/indexers/consensus-squid/src/types/balances/constants.ts @@ -1,44 +1,59 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType('Balances.ExistentialDeposit', sts.bigint()), +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType( + 'Balances.ExistentialDeposit', + sts.bigint() + ), } -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType('Balances.MaxLocks', sts.number()), +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType( + 'Balances.MaxLocks', + sts.number() + ), } -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType('Balances.MaxReserves', sts.number()), +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType( + 'Balances.MaxReserves', + sts.number() + ), } -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType('Balances.MaxHolds', sts.number()), +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxHolds', + sts.number() + ), } -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType('Balances.MaxFreezes', sts.number()), +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxFreezes', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/balances/events.ts b/indexers/consensus-squid/src/types/balances/events.ts index e03356954..fda7f6e59 100644 --- a/indexers/consensus-squid/src/types/balances/events.ts +++ b/indexers/consensus-squid/src/types/balances/events.ts @@ -1,312 +1,312 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }), - ), +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }) + ), } -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }), - ), +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }) + ), } -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }), - ), +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }) + ), } -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }), - ), +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }) + ), } -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }), - ), +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }) + ), } -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }), - ), +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }) + ), } -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }), - ), +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/balances/storage.ts b/indexers/consensus-squid/src/types/balances/storage.ts index bc3249096..5f4a19212 100644 --- a/indexers/consensus-squid/src/types/balances/storage.ts +++ b/indexers/consensus-squid/src/types/balances/storage.ts @@ -1,358 +1,253 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, } /** * The total units issued in the system. */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType( - 'Balances.InactiveIssuance', - 'Default', - [], - sts.bigint(), - ) as InactiveIssuanceV0, +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, } /** * The total units of outstanding deactivated balance in the system. */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, } /** * The Balances pallet example of storing the balance of an account. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> * } * ``` - * + * * You can also store the balance of an account in the `System` pallet. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = System * } * ``` - * + * * But this comes with tradeoffs, storing account balances in the system pallet stores * `frame_system` data alongside the account data contrary to storing account balances in the * `Balances` pallet, which uses a `StorageMap` to store balances data only. * NOTE: This is only used in the case that this pallet is used to store balances. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType( - 'Balances.Locks', - 'Default', - [v0.AccountId32], - sts.array(() => v0.BalanceLock), - ) as LocksV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, } /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType( - 'Balances.Reserves', - 'Default', - [v0.AccountId32], - sts.array(() => v0.ReserveData), - ) as ReservesV0, +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, } /** * Named reserves on some account balances. */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType( - 'Balances.Holds', - 'Default', - [v0.AccountId32], - sts.array(() => v0.IdAmount), - ) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType( - 'Balances.Holds', - 'Default', - [v1.AccountId32], - sts.array(() => v1.IdAmount), - ) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType( - 'Balances.Holds', - 'Default', - [v3.AccountId32], - sts.array(() => v3.IdAmount), - ) as HoldsV3, +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, } /** * Holds on account balances. */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> } /** * Holds on account balances. */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v1.AccountId32, - ): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.AccountId32, - ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> } /** * Holds on account balances. */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v3.AccountId32, - ): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v3.AccountId32, - ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType( - 'Balances.Freezes', - 'Default', - [v0.AccountId32], - sts.array(() => v0.Type_152), - ) as FreezesV0, +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, } /** * Freeze locks on account balances. */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> } diff --git a/indexers/consensus-squid/src/types/domains/calls.ts b/indexers/consensus-squid/src/types/domains/calls.ts index 803c3241f..3ecf1398b 100644 --- a/indexers/consensus-squid/src/types/domains/calls.ts +++ b/indexers/consensus-squid/src/types/domains/calls.ts @@ -1,278 +1,278 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }), - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }), - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }), - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }) + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }) + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }) + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }), - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }), - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }), - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }) + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }) + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }) + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }) + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }), - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }) + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }) + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }) + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }), - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }), - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }) + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }) + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }), - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }) + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }) + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }), - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }) + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }), - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }) + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }), - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }) + ), } diff --git a/indexers/consensus-squid/src/types/domains/constants.ts b/indexers/consensus-squid/src/types/domains/constants.ts index aca0daa1d..a26b47666 100644 --- a/indexers/consensus-squid/src/types/domains/constants.ts +++ b/indexers/consensus-squid/src/types/domains/constants.ts @@ -1,153 +1,213 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType('Domains.MaxNominators', sts.number()), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType('Domains.SudoId', v0.AccountId32), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType('Domains.PalletId', v1.PalletId), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]), - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType('Domains.BundleLongevity', sts.number()), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType( + 'Domains.ConfirmationDepthK', + sts.number() + ), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType( + 'Domains.DomainRuntimeUpgradeDelay', + sts.number() + ), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType( + 'Domains.BlockTreePruningDepth', + sts.number() + ), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockSize', + sts.number() + ), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockWeight', + v0.Weight + ), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxBundlesPerBlock', + sts.number() + ), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainNameLength', + sts.number() + ), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType( + 'Domains.DomainInstantiationDeposit', + sts.bigint() + ), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType( + 'Domains.InitialDomainTxRange', + sts.bigint() + ), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType( + 'Domains.DomainTxRangeAdjustmentInterval', + sts.bigint() + ), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType( + 'Domains.MinOperatorStake', + sts.bigint() + ), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType( + 'Domains.MinNominatorStake', + sts.bigint() + ), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType( + 'Domains.StakeWithdrawalLockingPeriod', + sts.number() + ), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType( + 'Domains.StakeEpochDuration', + sts.number() + ), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType( + 'Domains.TreasuryAccount', + v0.AccountId32 + ), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType( + 'Domains.MaxPendingStakingOperation', + sts.number() + ), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType( + 'Domains.MaxNominators', + sts.number() + ), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType( + 'Domains.SudoId', + v0.AccountId32 + ), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType( + 'Domains.PalletId', + v1.PalletId + ), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType( + 'Domains.BundleLongevity', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/domains/events.ts b/indexers/consensus-squid/src/types/domains/events.ts index f10bdb7c7..d6551e7d0 100644 --- a/indexers/consensus-squid/src/types/domains/events.ts +++ b/indexers/consensus-squid/src/types/domains/events.ts @@ -1,250 +1,250 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }), - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }), - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }), - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }), - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }), - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }), - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }), - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }), - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }), - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }), - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }), - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }), - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }), - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }), - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }) + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }) + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }) + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }) + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }) + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }) + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }) + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }) + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }) + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }) + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }) + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/domains/storage.ts b/indexers/consensus-squid/src/types/domains/storage.ts index c586dbd04..495ae0e03 100644 --- a/indexers/consensus-squid/src/types/domains/storage.ts +++ b/indexers/consensus-squid/src/types/domains/storage.ts @@ -1,773 +1,452 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulBundles', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulFraudProofs', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const runtimeRegistry = { - v0: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v0.RuntimeObject, - ) as RuntimeRegistryV0, - v5: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v5.RuntimeObject, - ) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType( - 'Domains.ScheduledRuntimeUpgrades', - 'Optional', - [sts.number(), sts.number()], - v0.ScheduledRuntimeUpgrade, - ) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise - getMany( - block: Block, - keys: [number, number][], - ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[number, number][]> - getPairs( - block: Block, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - key2: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const operatorIdOwner = { - v0: new StorageType( - 'Domains.OperatorIdOwner', - 'Optional', - [sts.bigint()], - v0.AccountId32, - ) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType( - 'Domains.OperatorSigningKey', - 'Optional', - [sts.bytes()], - sts.bigint(), - ) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const runtimeRegistry = { + v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, + v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> + getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> + getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const operatorIdOwner = { + v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: Bytes, - ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> -} - -export const domainStakingSummary = { - v0: new StorageType( - 'Domains.DomainStakingSummary', - 'Optional', - [v0.DomainId], - v0.StakingSummary, - ) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise<(bigint | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> +} + +export const domainStakingSummary = { + v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType( - 'Domains.PendingOperatorSwitches', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType( - 'Domains.OperatorEpochSharePrice', - 'Optional', - [sts.bigint(), v0.DomainEpoch], - v0.SharePrice, - ) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Deposit, - ) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Deposit, - ) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Withdrawal, - ) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Withdrawal, - ) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType( - 'Domains.NominatorCount', - 'Default', - [sts.bigint()], - sts.number(), - ) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, } /** @@ -778,37 +457,28 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: number | undefined][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType( - 'Domains.PendingSlashes', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise<(number | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, } /** @@ -816,537 +486,341 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType( - 'Domains.PendingStakingOperationCount', - 'Default', - [v0.DomainId], - sts.number(), - ) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v0.DomainId], - v0.DomainObject, - ) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v1.DomainId], - v1.DomainObject, - ) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v5.DomainId], - v5.DomainObject, - ) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise<(v0.DomainId | undefined)> +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairs( - block: Block, - key: v5.DomainId, - ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.DomainId, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType( - 'Domains.BlockTree', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v0.H256], - v0.BlockTreeNode, - ) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v1.H256], - v1.BlockTreeNode, - ) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v5.H256], - v5.BlockTreeNode, - ) as BlockTreeNodesV5, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.H256, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.H256, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType( - 'Domains.HeadReceiptNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadReceiptNumberV0, +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType( - 'Domains.LatestConfirmedDomainBlockNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType( - 'Domains.HeadReceiptExtended', - 'Default', - [v0.DomainId], - sts.boolean(), - ) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType( - 'Domains.StateRoots', - 'Optional', - [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], - v0.H256, - ) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType( - 'Domains.ConsensusBlockHash', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, } /** @@ -1354,277 +828,114 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v0.DomainId, sts.number(), sts.number()], - sts.array(() => v0.BundleDigest), - ) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v1.DomainId, sts.number(), sts.number()], - sts.array(() => v1.BundleDigest), - ) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v0.DomainId, number, number][], - ): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v1.DomainId, number, number][], - ): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType( - 'Domains.InboxedBundleAuthor', - 'Optional', - [v0.H256], - sts.bigint(), - ) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, } /** @@ -1632,40 +943,28 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType( - 'Domains.HeadDomainNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, } /** @@ -1674,42 +973,30 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType( - 'Domains.LastEpochStakingDistribution', - 'Optional', - [v0.DomainId], - v0.ElectionVerificationParams, - ) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, } /** @@ -1719,336 +1006,221 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> -} - -export const domainTxRangeState = { - v0: new StorageType( - 'Domains.DomainTxRangeState', - 'Optional', - [v0.DomainId], - v0.TxRangeState, - ) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType( - 'Domains.LatestConfirmedDomainBlock', - 'Optional', - [v1.DomainId], - v1.ConfirmedDomainBlock, - ) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> +} + +export const domainTxRangeState = { + v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType( - 'Domains.LatestSubmittedER', - 'Default', - [sts.tuple(() => [v3.DomainId, sts.bigint()])], - sts.number(), - ) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairs( - block: Block, - key: [v3.DomainId, bigint], - ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType( - 'Domains.OperatorHighestSlot', - 'Default', - [sts.bigint()], - sts.bigint(), - ) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint | undefined][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType( - 'Domains.OperatorBundleSlot', - 'Default', - [sts.bigint()], - sts.array(() => sts.bigint()), - ) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise<(bigint | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType( - 'Domains.PermissionedActionAllowedBy', - 'Optional', - [], - v5.PermissionedActionAllowedBy, - ) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType( - 'Domains.AccumulatedTreasuryFunds', - 'Default', - [], - sts.bigint(), - ) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgradeRecords', - 'Default', - [sts.number()], - sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), - ) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> - getMany( - block: Block, - keys: number[], - ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs( - block: Block, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairs( - block: Block, - key: number, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgrades', - 'Default', - [], - sts.array(() => sts.number()), - ) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> + getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise<(number[] | undefined)> } diff --git a/indexers/consensus-squid/src/types/messenger/calls.ts b/indexers/consensus-squid/src/types/messenger/calls.ts index f3e94c30b..03c0f7588 100644 --- a/indexers/consensus-squid/src/types/messenger/calls.ts +++ b/indexers/consensus-squid/src/types/messenger/calls.ts @@ -1,146 +1,146 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v3 from '../v3' import * as v5 from '../v5' -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }), - ), - /** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ - v5: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v5.ChainId, - params: v5.InitiateChannelParams, - }), - ), +export const initiateChannel = { + name: 'Messenger.initiate_channel', + /** + * See [`Pallet::initiate_channel`]. + */ + v0: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v0.ChainId, + params: v0.InitiateChannelParams, + }) + ), + /** + * A new Channel is initiated with a foreign chain. + * Next Channel ID is used to assign the new channel. + * Channel is set to initiated and do not accept or receive any messages. + */ + v5: new CallType( + 'Messenger.initiate_channel', + sts.struct({ + dstChainId: v5.ChainId, + params: v5.InitiateChannelParams, + }) + ), } -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }), - ), +export const closeChannel = { + name: 'Messenger.close_channel', + /** + * See [`Pallet::close_channel`]. + */ + v0: new CallType( + 'Messenger.close_channel', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + }) + ), } -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }), - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }), - ), - /** - * Receives an Inbox message that needs to be validated and processed. - */ - v5: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v5.CrossDomainMessage, - }), - ), +export const relayMessage = { + name: 'Messenger.relay_message', + /** + * See [`Pallet::relay_message`]. + */ + v0: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v0.CrossDomainMessage, + }) + ), + /** + * See [`Pallet::relay_message`]. + */ + v3: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v3.CrossDomainMessage, + }) + ), + /** + * Receives an Inbox message that needs to be validated and processed. + */ + v5: new CallType( + 'Messenger.relay_message', + sts.struct({ + msg: v5.CrossDomainMessage, + }) + ), } -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }), - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }), - ), - /** - * Receives a response from the dst_chain for a message in Outbox. - */ - v5: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v5.CrossDomainMessage, - }), - ), +export const relayMessageResponse = { + name: 'Messenger.relay_message_response', + /** + * See [`Pallet::relay_message_response`]. + */ + v0: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v0.CrossDomainMessage, + }) + ), + /** + * See [`Pallet::relay_message_response`]. + */ + v3: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v3.CrossDomainMessage, + }) + ), + /** + * Receives a response from the dst_chain for a message in Outbox. + */ + v5: new CallType( + 'Messenger.relay_message_response', + sts.struct({ + msg: v5.CrossDomainMessage, + }) + ), } -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }), - ), +export const updateConsensusChainAllowlist = { + name: 'Messenger.update_consensus_chain_allowlist', + /** + * See [`Pallet::update_consensus_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_consensus_chain_allowlist', + sts.struct({ + update: v3.ChainAllowlistUpdate, + }) + ), } -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }), - ), +export const initiateDomainUpdateChainAllowlist = { + name: 'Messenger.initiate_domain_update_chain_allowlist', + /** + * See [`Pallet::initiate_domain_update_chain_allowlist`]. + */ + v3: new CallType( + 'Messenger.initiate_domain_update_chain_allowlist', + sts.struct({ + domainId: v3.DomainId, + update: v3.ChainAllowlistUpdate, + }) + ), } -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }), - ), +export const updateDomainAllowlist = { + name: 'Messenger.update_domain_allowlist', + /** + * See [`Pallet::update_domain_allowlist`]. + */ + v3: new CallType( + 'Messenger.update_domain_allowlist', + sts.struct({ + updates: v3.DomainAllowlistUpdates, + }) + ), } diff --git a/indexers/consensus-squid/src/types/messenger/constants.ts b/indexers/consensus-squid/src/types/messenger/constants.ts index 50aac1818..fecb47fda 100644 --- a/indexers/consensus-squid/src/types/messenger/constants.ts +++ b/indexers/consensus-squid/src/types/messenger/constants.ts @@ -1,17 +1,23 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v5 from '../v5' -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType('Messenger.ChannelReserveFee', sts.bigint()), +export const channelReserveFee = { + /** + * Channel reserve fee to open a channel. + */ + v3: new ConstantType( + 'Messenger.ChannelReserveFee', + sts.bigint() + ), } -export const channelInitReservePortion = { - /** - * Portion of Channel reserve taken by the protocol - * if the channel is in init state and is requested to be closed. - */ - v5: new ConstantType('Messenger.ChannelInitReservePortion', v5.Perbill), +export const channelInitReservePortion = { + /** + * Portion of Channel reserve taken by the protocol + * if the channel is in init state and is requested to be closed. + */ + v5: new ConstantType( + 'Messenger.ChannelInitReservePortion', + v5.Perbill + ), } diff --git a/indexers/consensus-squid/src/types/messenger/events.ts b/indexers/consensus-squid/src/types/messenger/events.ts index 05a77ea75..c36e8bf2b 100644 --- a/indexers/consensus-squid/src/types/messenger/events.ts +++ b/indexers/consensus-squid/src/types/messenger/events.ts @@ -1,150 +1,150 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }), - ), +export const channelInitiated = { + name: 'Messenger.ChannelInitiated', + /** + * Emits when a channel between two chains is initiated. + */ + v0: new EventType( + 'Messenger.ChannelInitiated', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), } -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }), - ), +export const channelClosed = { + name: 'Messenger.ChannelClosed', + /** + * Emits when a channel between two chains is closed. + */ + v0: new EventType( + 'Messenger.ChannelClosed', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), } -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }), - ), +export const channelOpen = { + name: 'Messenger.ChannelOpen', + /** + * Emits when a channel between two chain is open. + */ + v0: new EventType( + 'Messenger.ChannelOpen', + sts.struct({ + /** + * Foreign chain id this channel connects to. + */ + chainId: v0.ChainId, + /** + * Channel ID of the said channel. + */ + channelId: sts.bigint(), + }) + ), } -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - ), +export const outboxMessage = { + name: 'Messenger.OutboxMessage', + /** + * Emits when a new message is added to the outbox. + */ + v0: new EventType( + 'Messenger.OutboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), } -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - ), +export const outboxMessageResponse = { + name: 'Messenger.OutboxMessageResponse', + /** + * Emits when a message response is available for Outbox message. + */ + v0: new EventType( + 'Messenger.OutboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), } -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }), - ), +export const outboxMessageResult = { + name: 'Messenger.OutboxMessageResult', + /** + * Emits outbox message result. + */ + v0: new EventType( + 'Messenger.OutboxMessageResult', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: v0.OutboxMessageResult, + }) + ), } -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - ), +export const inboxMessage = { + name: 'Messenger.InboxMessage', + /** + * Emits when a new inbox message is validated and added to Inbox. + */ + v0: new EventType( + 'Messenger.InboxMessage', + sts.struct({ + chainId: v0.ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), } -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - ), +export const inboxMessageResponse = { + name: 'Messenger.InboxMessageResponse', + /** + * Emits when a message response is available for Inbox message. + */ + v0: new EventType( + 'Messenger.InboxMessageResponse', + sts.struct({ + /** + * Destination chain ID. + */ + chainId: v0.ChainId, + /** + * Channel Is + */ + channelId: sts.bigint(), + nonce: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/messenger/storage.ts b/indexers/consensus-squid/src/types/messenger/storage.ts index 94bdb8a24..cb857a76e 100644 --- a/indexers/consensus-squid/src/types/messenger/storage.ts +++ b/indexers/consensus-squid/src/types/messenger/storage.ts @@ -1,197 +1,114 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v3 from '../v3' import * as v5 from '../v5' -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType( - 'Messenger.NextChannelId', - 'Default', - [v0.ChainId], - sts.bigint(), - ) as NextChannelIdV0, +export const nextChannelId = { + /** + * Stores the next channel id for a foreign chain. + */ + v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, } /** * Stores the next channel id for a foreign chain. */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: bigint | undefined][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.ChainId, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.ChainId, - ): AsyncIterable<[k: v0.ChainId, v: bigint | undefined][]> +export interface NextChannelIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.ChainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> } -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType( - 'Messenger.Channels', - 'Optional', - [v0.ChainId, sts.bigint()], - v0.Channel, - ) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType( - 'Messenger.Channels', - 'Optional', - [v3.ChainId, sts.bigint()], - v3.Channel, - ) as ChannelsV3, +export const channels = { + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, + /** + * Stores channel config between two chains. + * Key points to the foreign chain wrt own chain's storage name space + */ + v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, } /** * Stores channel config between two chains. * Key points to the foreign chain wrt own chain's storage name space */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - ): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - key2: bigint, - ): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> - getPairs( - block: Block, - key1: v0.ChainId, - ): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> - getPairs( - block: Block, - key1: v0.ChainId, - key2: bigint, - ): Promise<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - key2: bigint, - ): AsyncIterable<[k: [v0.ChainId, bigint], v: v0.Channel | undefined][]> +export interface ChannelsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> + getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> } /** * Stores channel config between two chains. * Key points to the foreign chain wrt own chain's storage name space */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v3.ChainId, - ): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v3.ChainId, - key2: bigint, - ): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> - getPairs( - block: Block, - key1: v3.ChainId, - ): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> - getPairs( - block: Block, - key1: v3.ChainId, - key2: bigint, - ): Promise<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v3.ChainId, - ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v3.ChainId, - key2: bigint, - ): AsyncIterable<[k: [v3.ChainId, bigint], v: v3.Channel | undefined][]> +export interface ChannelsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> + getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> + getKeys(block: Block): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> + getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> } -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, +export const inbox = { + /** + * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` + * and `relay_message`. + */ + v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, } /** * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` * and `relay_message`. */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface InboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Message | undefined)> } -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType( - 'Messenger.InboxFee', - 'Optional', - [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], - sts.bigint(), - ) as InboxFeeV0, +export const inboxFee = { + /** + * A temporary storage of fees for executing an inbox message. + * The storage is cleared when the acknowledgement of inbox response is received + * from the src_chain. + */ + v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, } /** @@ -199,334 +116,217 @@ export const inboxFee = { * The storage is cleared when the acknowledgement of inbox response is received * from the src_chain. */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys( - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairs( - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> +export interface InboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> } -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType( - 'Messenger.OutboxFee', - 'Optional', - [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], - sts.bigint(), - ) as OutboxFeeV0, +export const outboxFee = { + /** + * A temporary storage of fees for executing an outbox message and its response from dst_chain. + * The storage is cleared when src_chain receives the response from dst_chain. + */ + v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, } /** * A temporary storage of fees for executing an outbox message and its response from dst_chain. * The storage is cleared when src_chain receives the response from dst_chain. */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys( - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairs( - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, [bigint, bigint]], - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: bigint | undefined][]> +export interface OutboxFeeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> } -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType( - 'Messenger.InboxResponses', - 'Optional', - [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], - v0.Message, - ) as InboxResponsesV0, +export const inboxResponses = { + /** + * Stores the message responses of the incoming processed responses. + * Used by the dst_chains to verify the message response. + */ + v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, } /** * Stores the message responses of the incoming processed responses. * Used by the dst_chains to verify the message response. */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, bigint, bigint], - ): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairs( - block: Block, - key: [v0.ChainId, bigint, bigint], - ): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, bigint, bigint], - ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> +export interface InboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> } -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType( - 'Messenger.CounterForInboxResponses', - 'Default', - [], - sts.number(), - ) as CounterForInboxResponsesV0, +export const counterForInboxResponses = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, } /** * Counter for the related counted storage map */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface CounterForInboxResponsesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType( - 'Messenger.Outbox', - 'Optional', - [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], - v0.Message, - ) as OutboxV0, +export const outbox = { + /** + * Stores the outgoing messages that are awaiting message responses from the dst_chain. + * Messages are processed in the outbox nonce order of chain's channel. + */ + v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, } /** * Stores the outgoing messages that are awaiting message responses from the dst_chain. * Messages are processed in the outbox nonce order of chain's channel. */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, bigint, bigint], - ): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairs( - block: Block, - key: [v0.ChainId, bigint, bigint], - ): Promise<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.ChainId, bigint, bigint], - ): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: v0.Message | undefined][]> +export interface OutboxV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> + getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> + getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> } -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType( - 'Messenger.CounterForOutbox', - 'Default', - [], - sts.number(), - ) as CounterForOutboxV0, +export const counterForOutbox = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, } /** * Counter for the related counted storage map */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface CounterForOutboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, +export const outboxResponses = { + /** + * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` + * and `relay_message_response`. + */ + v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, } /** * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` * and `relay_message_response`. */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface OutboxResponsesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Message | undefined)> } -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType( - 'Messenger.BlockMessages', - 'Optional', - [], - v0.BlockMessages, - ) as BlockMessagesV0, +export const blockMessages = { + /** + * A temporary storage to store all the messages to be relayed in this block. + * Will be cleared on the initialization on next block. + */ + v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, } /** * A temporary storage to store all the messages to be relayed in this block. * Will be cleared on the initialization on next block. */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface BlockMessagesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.BlockMessages | undefined)> } -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType( - 'Messenger.ChainAllowlist', - 'Default', - [], - sts.array(() => v3.ChainId), - ) as ChainAllowlistV3, +export const chainAllowlist = { + /** + * An allowlist of chains that can open channel with this chain. + */ + v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, } /** * An allowlist of chains that can open channel with this chain. */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise +export interface ChainAllowlistV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.ChainId[] + get(block: Block): Promise<(v3.ChainId[] | undefined)> } -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType( - 'Messenger.DomainChainAllowlistUpdate', - 'Optional', - [v3.DomainId], - v3.DomainAllowlistUpdates, - ) as DomainChainAllowlistUpdateV3, +export const domainChainAllowlistUpdate = { + /** + * A temporary storage to store any allowlist updates to domain. + * Will be cleared in the next block once the previous block has a domain bundle. + */ + v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, } /** * A temporary storage to store any allowlist updates to domain. * Will be cleared in the next block once the previous block has a domain bundle. */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> - getPairs( - block: Block, - key: v3.DomainId, - ): Promise<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v3.DomainId, - ): AsyncIterable<[k: v3.DomainId, v: v3.DomainAllowlistUpdates | undefined][]> +export interface DomainChainAllowlistUpdateV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> + getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> } -export const messageWeightTags = { - /** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ - v5: new StorageType( - 'Messenger.MessageWeightTags', - 'Optional', - [], - v5.MessageWeightTags, - ) as MessageWeightTagsV5, +export const messageWeightTags = { + /** + * Storage to store the weight tags for all the outbox and inbox response messages. + */ + v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, } /** * Storage to store the weight tags for all the outbox and inbox response messages. */ -export interface MessageWeightTagsV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface MessageWeightTagsV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.MessageWeightTags | undefined)> } diff --git a/indexers/consensus-squid/src/types/mmr/storage.ts b/indexers/consensus-squid/src/types/mmr/storage.ts index 3412b1f24..b4c49bbab 100644 --- a/indexers/consensus-squid/src/types/mmr/storage.ts +++ b/indexers/consensus-squid/src/types/mmr/storage.ts @@ -1,71 +1,64 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const rootHash = { - /** - * Latest MMR Root hash. - */ - v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, +export const rootHash = { + /** + * Latest MMR Root hash. + */ + v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, } /** * Latest MMR Root hash. */ -export interface RootHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise +export interface RootHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> } -export const numberOfLeaves = { - /** - * Current size of the MMR (number of leaves). - */ - v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, +export const numberOfLeaves = { + /** + * Current size of the MMR (number of leaves). + */ + v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, } /** * Current size of the MMR (number of leaves). */ -export interface NumberOfLeavesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface NumberOfLeavesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const nodes = { - /** - * Hashes of the nodes in the MMR. - * - * Note this collection only contains MMR peaks, the inner nodes (and leaves) - * are pruned and only stored in the Offchain DB. - */ - v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, +export const nodes = { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + */ + v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, } /** * Hashes of the nodes in the MMR. - * + * * Note this collection only contains MMR peaks, the inner nodes (and leaves) * are pruned and only stored in the Offchain DB. */ -export interface NodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.H256 | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.H256 | undefined][]> +export interface NodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> } diff --git a/indexers/consensus-squid/src/types/offences-subspace/events.ts b/indexers/consensus-squid/src/types/offences-subspace/events.ts index b0d052ed3..71fb77783 100644 --- a/indexers/consensus-squid/src/types/offences-subspace/events.ts +++ b/indexers/consensus-squid/src/types/offences-subspace/events.ts @@ -1,17 +1,17 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -export const offence = { - name: 'OffencesSubspace.Offence', - /** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ - v0: new EventType( - 'OffencesSubspace.Offence', - sts.struct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - ), +export const offence = { + name: 'OffencesSubspace.Offence', + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ + v0: new EventType( + 'OffencesSubspace.Offence', + sts.struct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/offences-subspace/storage.ts b/indexers/consensus-squid/src/types/offences-subspace/storage.ts index 9ee7e3999..bbc37e51f 100644 --- a/indexers/consensus-squid/src/types/offences-subspace/storage.ts +++ b/indexers/consensus-squid/src/types/offences-subspace/storage.ts @@ -1,137 +1,90 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const reports = { - /** - * The primary structure that holds all offence records keyed by report identifiers. - */ - v0: new StorageType( - 'OffencesSubspace.Reports', - 'Optional', - [v0.H256], - v0.OffenceDetails, - ) as ReportsV0, +export const reports = { + /** + * The primary structure that holds all offence records keyed by report identifiers. + */ + v0: new StorageType('OffencesSubspace.Reports', 'Optional', [v0.H256], v0.OffenceDetails) as ReportsV0, } /** * The primary structure that holds all offence records keyed by report identifiers. */ -export interface ReportsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: v0.OffenceDetails | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.OffenceDetails | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: v0.OffenceDetails | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: v0.OffenceDetails | undefined][]> +export interface ReportsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.OffenceDetails | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> } -export const concurrentReportsIndex = { - /** - * A vector of reports of the same kind that happened at the same time slot. - */ - v0: new StorageType( - 'OffencesSubspace.ConcurrentReportsIndex', - 'Default', - [sts.bytes(), sts.bytes()], - sts.array(() => v0.H256), - ) as ConcurrentReportsIndexV0, +export const concurrentReportsIndex = { + /** + * A vector of reports of the same kind that happened at the same time slot. + */ + v0: new StorageType('OffencesSubspace.ConcurrentReportsIndex', 'Default', [sts.bytes(), sts.bytes()], sts.array(() => v0.H256)) as ConcurrentReportsIndexV0, } /** * A vector of reports of the same kind that happened at the same time slot. */ -export interface ConcurrentReportsIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key1: Bytes, key2: Bytes): Promise - getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: Bytes, - key2: Bytes, - ): AsyncIterable<[Bytes, Bytes][]> - getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> - getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> - getPairs( - block: Block, - key1: Bytes, - key2: Bytes, - ): Promise<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: Bytes, - ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: Bytes, - key2: Bytes, - ): AsyncIterable<[k: [Bytes, Bytes], v: v0.H256[] | undefined][]> +export interface ConcurrentReportsIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key1: Bytes, key2: Bytes): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> + getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> + getKeysPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[Bytes, Bytes][]> + getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key1: Bytes, key2: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> } -export const reportsByKindIndex = { - /** - * Enumerates all reports of a kind along with the time they happened. - * - * All reports are sorted by the time of offence. - * - * Note that the actual type of this mapping is `Vec`, this is because values of - * different types are not supported at the moment so we are doing the manual serialization. - */ - v0: new StorageType( - 'OffencesSubspace.ReportsByKindIndex', - 'Default', - [sts.bytes()], - sts.bytes(), - ) as ReportsByKindIndexV0, +export const reportsByKindIndex = { + /** + * Enumerates all reports of a kind along with the time they happened. + * + * All reports are sorted by the time of offence. + * + * Note that the actual type of this mapping is `Vec`, this is because values of + * different types are not supported at the moment so we are doing the manual serialization. + */ + v0: new StorageType('OffencesSubspace.ReportsByKindIndex', 'Default', [sts.bytes()], sts.bytes()) as ReportsByKindIndexV0, } /** * Enumerates all reports of a kind along with the time they happened. - * + * * All reports are sorted by the time of offence. - * + * * Note that the actual type of this mapping is `Vec`, this is because values of * different types are not supported at the moment so we are doing the manual serialization. */ -export interface ReportsByKindIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: Bytes): Promise - getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: Bytes | undefined][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: Bytes | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: Bytes | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: Bytes, - ): AsyncIterable<[k: Bytes, v: Bytes | undefined][]> +export interface ReportsByKindIndexV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: Bytes): Promise<(Bytes | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (Bytes | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> } diff --git a/indexers/consensus-squid/src/types/rewards/calls.ts b/indexers/consensus-squid/src/types/rewards/calls.ts index 1608b0cbe..b8486afff 100644 --- a/indexers/consensus-squid/src/types/rewards/calls.ts +++ b/indexers/consensus-squid/src/types/rewards/calls.ts @@ -1,16 +1,16 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v3 from '../v3' -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }), - ), +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }) + ), } diff --git a/indexers/consensus-squid/src/types/rewards/constants.ts b/indexers/consensus-squid/src/types/rewards/constants.ts index 960b446d6..e1004ecc1 100644 --- a/indexers/consensus-squid/src/types/rewards/constants.ts +++ b/indexers/consensus-squid/src/types/rewards/constants.ts @@ -1,46 +1,61 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType('Rewards.BlockReward', sts.bigint()), +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType( + 'Rewards.BlockReward', + sts.bigint() + ), } -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType('Rewards.VoteReward', sts.bigint()), +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType( + 'Rewards.VoteReward', + sts.bigint() + ), } -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType('Rewards.AvgBlockspaceUsageNumBlocks', sts.number()), +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType( + 'Rewards.AvgBlockspaceUsageNumBlocks', + sts.number() + ), } -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType('Rewards.TransactionByteFee', sts.bigint()), +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType( + 'Rewards.TransactionByteFee', + sts.bigint() + ), } -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType('Rewards.MaxRewardPoints', sts.number()), +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType( + 'Rewards.MaxRewardPoints', + sts.number() + ), } -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]), - ), +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]) + ), } diff --git a/indexers/consensus-squid/src/types/rewards/events.ts b/indexers/consensus-squid/src/types/rewards/events.ts index ce993f9b9..5b01a1694 100644 --- a/indexers/consensus-squid/src/types/rewards/events.ts +++ b/indexers/consensus-squid/src/types/rewards/events.ts @@ -1,30 +1,30 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }), - ), +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }) + ), } -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }), - ), +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/rewards/storage.ts b/indexers/consensus-squid/src/types/rewards/storage.ts index 300403260..971093421 100644 --- a/indexers/consensus-squid/src/types/rewards/storage.ts +++ b/indexers/consensus-squid/src/types/rewards/storage.ts @@ -1,102 +1,82 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v3 from '../v3' -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType( - 'Rewards.AvgBlockspaceUsage', - 'Default', - [], - sts.number(), - ) as AvgBlockspaceUsageV3, +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, } /** * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, } /** * Whether rewards are enabled */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType( - 'Rewards.RemainingIssuance', - 'Default', - [], - sts.bigint(), - ) as RemainingIssuanceV3, +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, } /** * Tokens left to issue to farmers at any given time */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType( - 'Rewards.ProposerSubsidyPoints', - 'Default', - [], - sts.array(() => v3.RewardPoint), - ) as ProposerSubsidyPointsV3, +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, } /** * Block proposer subsidy parameters */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> } -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType( - 'Rewards.VoterSubsidyPoints', - 'Default', - [], - sts.array(() => v3.RewardPoint), - ) as VoterSubsidyPointsV3, +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, } /** * Voter subsidy parameters */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> } diff --git a/indexers/consensus-squid/src/types/runtime-configs/calls.ts b/indexers/consensus-squid/src/types/runtime-configs/calls.ts index dceb07a36..d5c4a64e3 100644 --- a/indexers/consensus-squid/src/types/runtime-configs/calls.ts +++ b/indexers/consensus-squid/src/types/runtime-configs/calls.ts @@ -1,53 +1,53 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -export const setEnableDomains = { - name: 'RuntimeConfigs.set_enable_domains', - /** - * See [`Pallet::set_enable_domains`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_domains', - sts.struct({ - enableDomains: sts.boolean(), - }), - ), +export const setEnableDomains = { + name: 'RuntimeConfigs.set_enable_domains', + /** + * See [`Pallet::set_enable_domains`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_domains', + sts.struct({ + enableDomains: sts.boolean(), + }) + ), } -export const setEnableDynamicCostOfStorage = { - name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - /** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - sts.struct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - ), +export const setEnableDynamicCostOfStorage = { + name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + /** + * See [`Pallet::set_enable_dynamic_cost_of_storage`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', + sts.struct({ + enableDynamicCostOfStorage: sts.boolean(), + }) + ), } -export const setEnableBalanceTransfers = { - name: 'RuntimeConfigs.set_enable_balance_transfers', - /** - * See [`Pallet::set_enable_balance_transfers`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_balance_transfers', - sts.struct({ - enableBalanceTransfers: sts.boolean(), - }), - ), +export const setEnableBalanceTransfers = { + name: 'RuntimeConfigs.set_enable_balance_transfers', + /** + * See [`Pallet::set_enable_balance_transfers`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_balance_transfers', + sts.struct({ + enableBalanceTransfers: sts.boolean(), + }) + ), } -export const setEnableNonRootCalls = { - name: 'RuntimeConfigs.set_enable_non_root_calls', - /** - * See [`Pallet::set_enable_non_root_calls`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_non_root_calls', - sts.struct({ - enableNonRootCalls: sts.boolean(), - }), - ), +export const setEnableNonRootCalls = { + name: 'RuntimeConfigs.set_enable_non_root_calls', + /** + * See [`Pallet::set_enable_non_root_calls`]. + */ + v0: new CallType( + 'RuntimeConfigs.set_enable_non_root_calls', + sts.struct({ + enableNonRootCalls: sts.boolean(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/runtime-configs/storage.ts b/indexers/consensus-squid/src/types/runtime-configs/storage.ts index 5cb4b80ca..7ef56beaa 100644 --- a/indexers/consensus-squid/src/types/runtime-configs/storage.ts +++ b/indexers/consensus-squid/src/types/runtime-configs/storage.ts @@ -1,100 +1,75 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -export const enableDomains = { - /** - * Whether to enable calls in pallet-domains. - */ - v0: new StorageType( - 'RuntimeConfigs.EnableDomains', - 'Default', - [], - sts.boolean(), - ) as EnableDomainsV0, +export const enableDomains = { + /** + * Whether to enable calls in pallet-domains. + */ + v0: new StorageType('RuntimeConfigs.EnableDomains', 'Default', [], sts.boolean()) as EnableDomainsV0, } /** * Whether to enable calls in pallet-domains. */ -export interface EnableDomainsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface EnableDomainsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const enableDynamicCostOfStorage = { - /** - * Whether to enable dynamic cost of storage. - */ - v0: new StorageType( - 'RuntimeConfigs.EnableDynamicCostOfStorage', - 'Default', - [], - sts.boolean(), - ) as EnableDynamicCostOfStorageV0, +export const enableDynamicCostOfStorage = { + /** + * Whether to enable dynamic cost of storage. + */ + v0: new StorageType('RuntimeConfigs.EnableDynamicCostOfStorage', 'Default', [], sts.boolean()) as EnableDynamicCostOfStorageV0, } /** * Whether to enable dynamic cost of storage. */ -export interface EnableDynamicCostOfStorageV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface EnableDynamicCostOfStorageV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const enableBalanceTransfers = { - /** - * Whether to enable balances transfers. - */ - v0: new StorageType( - 'RuntimeConfigs.EnableBalanceTransfers', - 'Default', - [], - sts.boolean(), - ) as EnableBalanceTransfersV0, +export const enableBalanceTransfers = { + /** + * Whether to enable balances transfers. + */ + v0: new StorageType('RuntimeConfigs.EnableBalanceTransfers', 'Default', [], sts.boolean()) as EnableBalanceTransfersV0, } /** * Whether to enable balances transfers. */ -export interface EnableBalanceTransfersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface EnableBalanceTransfersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const enableNonRootCalls = { - /** - * Whether to enable calls from non-root account. - */ - v0: new StorageType( - 'RuntimeConfigs.EnableNonRootCalls', - 'Default', - [], - sts.boolean(), - ) as EnableNonRootCallsV0, +export const enableNonRootCalls = { + /** + * Whether to enable calls from non-root account. + */ + v0: new StorageType('RuntimeConfigs.EnableNonRootCalls', 'Default', [], sts.boolean()) as EnableNonRootCallsV0, } /** * Whether to enable calls from non-root account. */ -export interface EnableNonRootCallsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface EnableNonRootCallsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const confirmationDepthK = { - v0: new StorageType( - 'RuntimeConfigs.ConfirmationDepthK', - 'Default', - [], - sts.number(), - ) as ConfirmationDepthKV0, +export const confirmationDepthK = { + v0: new StorageType('RuntimeConfigs.ConfirmationDepthK', 'Default', [], sts.number()) as ConfirmationDepthKV0, } -export interface ConfirmationDepthKV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface ConfirmationDepthKV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } diff --git a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts index 9f7aad903..f095c3c8a 100644 --- a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts +++ b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts @@ -1,38 +1,26 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v5 from '../v5' -export const mmrRootHashes = { - /** - * Map of block numbers to mmr root hashes. - */ - v5: new StorageType( - 'SubspaceMmr.MmrRootHashes', - 'Optional', - [sts.number()], - v5.H256, - ) as MmrRootHashesV5, +export const mmrRootHashes = { + /** + * Map of block numbers to mmr root hashes. + */ + v5: new StorageType('SubspaceMmr.MmrRootHashes', 'Optional', [sts.number()], v5.H256) as MmrRootHashesV5, } /** * Map of block numbers to mmr root hashes. */ -export interface MmrRootHashesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v5.H256 | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v5.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v5.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v5.H256 | undefined][]> +export interface MmrRootHashesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> } diff --git a/indexers/consensus-squid/src/types/subspace/calls.ts b/indexers/consensus-squid/src/types/subspace/calls.ts index 02324c4fa..add70afae 100644 --- a/indexers/consensus-squid/src/types/subspace/calls.ts +++ b/indexers/consensus-squid/src/types/subspace/calls.ts @@ -1,76 +1,79 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }), - ), +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }) + ), } -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }), - ), +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }) + ), } -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - ), +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }) + ), } -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }), - ), +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }) + ), } -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }), - ), +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }) + ), } -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType('Subspace.enable_authoring_by_anyone', sts.unit()), +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType( + 'Subspace.enable_authoring_by_anyone', + sts.unit() + ), } diff --git a/indexers/consensus-squid/src/types/subspace/constants.ts b/indexers/consensus-squid/src/types/subspace/constants.ts index e90f6126b..555317b21 100644 --- a/indexers/consensus-squid/src/types/subspace/constants.ts +++ b/indexers/consensus-squid/src/types/subspace/constants.ts @@ -1,118 +1,154 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType('Subspace.BlockAuthoringDelay', v0.Slot), +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType( + 'Subspace.BlockAuthoringDelay', + v0.Slot + ), } -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionInterval', sts.number()), +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionInterval', + sts.number() + ), } -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionLookbackDepth', sts.number()), +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionLookbackDepth', + sts.number() + ), } -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionDelay', v0.Slot), +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionDelay', + v0.Slot + ), } -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType('Subspace.EraDuration', sts.number()), +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType( + 'Subspace.EraDuration', + sts.number() + ), } -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType('Subspace.InitialSolutionRange', sts.bigint()), +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType( + 'Subspace.InitialSolutionRange', + sts.bigint() + ), } -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]), - ), +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), } -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType('Subspace.ConfirmationDepthK', sts.number()), +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType( + 'Subspace.ConfirmationDepthK', + sts.number() + ), } -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType('Subspace.RecentSegments', v0.HistorySize), +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType( + 'Subspace.RecentSegments', + v0.HistorySize + ), } -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]), - ), +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]) + ), } -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType('Subspace.MinSectorLifetime', v0.HistorySize), +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType( + 'Subspace.MinSectorLifetime', + v0.HistorySize + ), } -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType('Subspace.ExpectedVotesPerBlock', sts.number()), +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType( + 'Subspace.ExpectedVotesPerBlock', + sts.number() + ), } -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType('Subspace.MaxPiecesInSector', sts.number()), +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType( + 'Subspace.MaxPiecesInSector', + sts.number() + ), } -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType('Subspace.BlockSlotCount', sts.number()), +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType( + 'Subspace.BlockSlotCount', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/subspace/events.ts b/indexers/consensus-squid/src/types/subspace/events.ts index 08d785a58..65427a471 100644 --- a/indexers/consensus-squid/src/types/subspace/events.ts +++ b/indexers/consensus-squid/src/types/subspace/events.ts @@ -1,31 +1,31 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }), - ), +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }) + ), } -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }), - ), +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }) + ), } diff --git a/indexers/consensus-squid/src/types/subspace/storage.ts b/indexers/consensus-squid/src/types/subspace/storage.ts index eb4811562..8c1220cc5 100644 --- a/indexers/consensus-squid/src/types/subspace/storage.ts +++ b/indexers/consensus-squid/src/types/subspace/storage.ts @@ -1,525 +1,390 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v3 from '../v3' -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, } /** * The slot at which the first block was created. This is 0 until the first block of the chain. */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> } -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, } /** * Current slot number. */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> } -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType( - 'Subspace.PotSlotIterations', - 'Optional', - [], - v0.NonZeroU32, - ) as PotSlotIterationsV0, +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, } /** * Number of iterations for proof of time per slot */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.NonZeroU32 | undefined)> } -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType( - 'Subspace.SolutionRanges', - 'Default', - [], - v0.SolutionRanges, - ) as SolutionRangesV0, +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, } /** * Solution ranges used for challenges. */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise<(v0.SolutionRanges | undefined)> } -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType( - 'Subspace.ShouldAdjustSolutionRange', - 'Default', - [], - sts.boolean(), - ) as ShouldAdjustSolutionRangeV0, +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, } /** * Storage to check if the solution range is to be adjusted for next era */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType( - 'Subspace.NextSolutionRangeOverride', - 'Optional', - [], - v0.SolutionRangeOverride, - ) as NextSolutionRangeOverrideV0, +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, } /** * Override solution range during next update */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> } -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, } /** * Slot at which current era started. */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Slot | undefined)> } -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, } /** * A set of blocked farmers keyed by their public key. */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: null | undefined][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: null | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.Public, v: null | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.Public, - ): AsyncIterable<[k: v0.Public, v: null | undefined][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType( - 'Subspace.SegmentCommitment', - 'Optional', - [v0.SegmentIndex], - v0.SegmentCommitment, - ) as SegmentCommitmentV0, +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise<(null | undefined)> + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, } /** * Mapping from segment index to corresponding segment commitment of contained records. */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged( - pageSize: number, - block: Block, - key: v0.SegmentIndex, - ): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairs( - block: Block, - key: v0.SegmentIndex, - ): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.SegmentIndex, - ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType( - 'Subspace.CounterForSegmentCommitment', - 'Default', - [], - sts.number(), - ) as CounterForSegmentCommitmentV0, +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, } /** * Counter for the related counted storage map */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType( - 'Subspace.DidProcessSegmentHeaders', - 'Default', - [], - sts.boolean(), - ) as DidProcessSegmentHeadersV0, +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, } /** * Whether the segment headers inherent has been processed in this block (temporary value). - * + * * This value is updated to `true` when processing `store_segment_headers` by a node. * It is then cleared at the end of each block execution in the `on_finalize` hook. */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType( - 'Subspace.ParentVoteVerificationData', - 'Optional', - [], - v0.VoteVerificationData, - ) as ParentVoteVerificationDataV0, +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, } /** * Storage of previous vote verification data, updated on each block during finalization. */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.VoteVerificationData | undefined)> } -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType( - 'Subspace.ParentBlockAuthorInfo', - 'Optional', - [], - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - ) as ParentBlockAuthorInfoV0, +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, } /** * Parent block author information. */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined> +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> } -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, } /** * Enable rewards since specified block number. */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType( - 'Subspace.EnableRewardsBelowSolutionRange', - 'Optional', - [], - sts.bigint(), - ) as EnableRewardsBelowSolutionRangeV0, +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, } /** * Enable rewards when solution range is below this threshold. */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(bigint | undefined)> } -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType( - 'Subspace.CurrentBlockAuthorInfo', - 'Optional', - [], - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32]), - ) as CurrentBlockAuthorInfoV0, +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, } /** * Temporary value (cleared at block finalization) with block author information. */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get( - block: Block, - ): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType( - 'Subspace.ParentBlockVoters', - 'Default', - [], - sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - sts.tuple(() => [v0.AccountId32, v0.Signature]), - ]), - ), - ) as ParentBlockVotersV0, +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, } /** * Voters in the parent block (set at the end of the block with current values). */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault( - block: Block, - ): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get( - block: Block, - ): Promise< - | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - | undefined - > -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType( - 'Subspace.CurrentBlockVoters', - 'Optional', - [], - sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - sts.tuple(() => [v0.AccountId32, v0.Signature]), - ]), - ), - ) as CurrentBlockVotersV0, +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, } /** * Temporary value (cleared at block finalization) with voters in the current block thus far. */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get( - block: Block, - ): Promise< - | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - | undefined - > -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType( - 'Subspace.PotEntropy', - 'Default', - [], - sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue])), - ) as PotEntropyV0, +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, } /** * Entropy that needs to be injected into proof of time chain at specific slot associated with * block number it came from. */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<[number, v0.PotEntropyValue][] | undefined> +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> } -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType( - 'Subspace.BlockRandomness', - 'Optional', - [], - v0.Randomness, - ) as BlockRandomnessV0, +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, } /** * The current block randomness, updated at block initialization. When the proof of time feature * is enabled it derived from PoT otherwise PoR. */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Randomness | undefined)> } -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType( - 'Subspace.AllowAuthoringByAnyone', - 'Default', - [], - sts.boolean(), - ) as AllowAuthoringByAnyoneV0, +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, } /** * Allow block authoring by anyone or just root. */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType( - 'Subspace.RootPlotPublicKey', - 'Optional', - [], - v0.Public, - ) as RootPlotPublicKeyV0, +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, } /** * Root plot public key. - * + * * Set just once to make sure no one else can author blocks until allowed for anyone. */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Public | undefined)> } -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType( - 'Subspace.BlockSlots', - 'Default', - [], - sts.array(() => sts.tuple(() => [sts.number(), v3.Slot])), - ) as BlockSlotsV3, +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, } /** * Bounded mapping from block number to slot */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<[number, v3.Slot][] | undefined> +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<([number, v3.Slot][] | undefined)> } diff --git a/indexers/consensus-squid/src/types/sudo/calls.ts b/indexers/consensus-squid/src/types/sudo/calls.ts index 97a48e8c0..dd08aa2e5 100644 --- a/indexers/consensus-squid/src/types/sudo/calls.ts +++ b/indexers/consensus-squid/src/types/sudo/calls.ts @@ -1,161 +1,164 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const sudo = { - name: 'Sudo.sudo', - /** - * See [`Pallet::sudo`]. - */ - v0: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v0.Call, - }), - ), - /** - * See [`Pallet::sudo`]. - */ - v1: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v1.Call, - }), - ), - /** - * See [`Pallet::sudo`]. - */ - v3: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v3.Call, - }), - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ - v5: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v5.Call, - }), - ), +export const sudo = { + name: 'Sudo.sudo', + /** + * See [`Pallet::sudo`]. + */ + v0: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v0.Call, + }) + ), + /** + * See [`Pallet::sudo`]. + */ + v1: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v1.Call, + }) + ), + /** + * See [`Pallet::sudo`]. + */ + v3: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v3.Call, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + */ + v5: new CallType( + 'Sudo.sudo', + sts.struct({ + call: v5.Call, + }) + ), } -export const sudoUncheckedWeight = { - name: 'Sudo.sudo_unchecked_weight', - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v0: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }), - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v1: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }), - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v3: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }), - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }), - ), +export const sudoUncheckedWeight = { + name: 'Sudo.sudo_unchecked_weight', + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v0: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }) + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v1: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }) + ), + /** + * See [`Pallet::sudo_unchecked_weight`]. + */ + v3: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_unchecked_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }) + ), } -export const setKey = { - name: 'Sudo.set_key', - /** - * See [`Pallet::set_key`]. - */ - v0: new CallType( - 'Sudo.set_key', - sts.struct({ - new: v0.MultiAddress, - }), - ), +export const setKey = { + name: 'Sudo.set_key', + /** + * See [`Pallet::set_key`]. + */ + v0: new CallType( + 'Sudo.set_key', + sts.struct({ + new: v0.MultiAddress, + }) + ), } -export const sudoAs = { - name: 'Sudo.sudo_as', - /** - * See [`Pallet::sudo_as`]. - */ - v0: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v0.MultiAddress, - call: v0.Call, - }), - ), - /** - * See [`Pallet::sudo_as`]. - */ - v1: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v1.MultiAddress, - call: v1.Call, - }), - ), - /** - * See [`Pallet::sudo_as`]. - */ - v3: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v3.MultiAddress, - call: v3.Call, - }), - ), - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v5.MultiAddress, - call: v5.Call, - }), - ), +export const sudoAs = { + name: 'Sudo.sudo_as', + /** + * See [`Pallet::sudo_as`]. + */ + v0: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v0.MultiAddress, + call: v0.Call, + }) + ), + /** + * See [`Pallet::sudo_as`]. + */ + v1: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v1.MultiAddress, + call: v1.Call, + }) + ), + /** + * See [`Pallet::sudo_as`]. + */ + v3: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v3.MultiAddress, + call: v3.Call, + }) + ), + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Sudo.sudo_as', + sts.struct({ + who: v5.MultiAddress, + call: v5.Call, + }) + ), } -export const removeKey = { - name: 'Sudo.remove_key', - /** - * See [`Pallet::remove_key`]. - */ - v0: new CallType('Sudo.remove_key', sts.unit()), +export const removeKey = { + name: 'Sudo.remove_key', + /** + * See [`Pallet::remove_key`]. + */ + v0: new CallType( + 'Sudo.remove_key', + sts.unit() + ), } diff --git a/indexers/consensus-squid/src/types/sudo/events.ts b/indexers/consensus-squid/src/types/sudo/events.ts index 988804a76..2e134d96a 100644 --- a/indexers/consensus-squid/src/types/sudo/events.ts +++ b/indexers/consensus-squid/src/types/sudo/events.ts @@ -1,68 +1,65 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const sudid = { - name: 'Sudo.Sudid', - /** - * A sudo call just took place. - */ - v0: new EventType( - 'Sudo.Sudid', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result( - () => sts.unit(), - () => v0.DispatchError, - ), - }), - ), +export const sudid = { + name: 'Sudo.Sudid', + /** + * A sudo call just took place. + */ + v0: new EventType( + 'Sudo.Sudid', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), } -export const keyChanged = { - name: 'Sudo.KeyChanged', - /** - * The sudo key has been updated. - */ - v0: new EventType( - 'Sudo.KeyChanged', - sts.struct({ - /** - * The old sudo key (if one was previously set). - */ - old: sts.option(() => v0.AccountId32), - /** - * The new sudo key (if one was set). - */ - new: v0.AccountId32, - }), - ), +export const keyChanged = { + name: 'Sudo.KeyChanged', + /** + * The sudo key has been updated. + */ + v0: new EventType( + 'Sudo.KeyChanged', + sts.struct({ + /** + * The old sudo key (if one was previously set). + */ + old: sts.option(() => v0.AccountId32), + /** + * The new sudo key (if one was set). + */ + new: v0.AccountId32, + }) + ), } -export const keyRemoved = { - name: 'Sudo.KeyRemoved', - /** - * The key was permanently removed. - */ - v0: new EventType('Sudo.KeyRemoved', sts.unit()), +export const keyRemoved = { + name: 'Sudo.KeyRemoved', + /** + * The key was permanently removed. + */ + v0: new EventType( + 'Sudo.KeyRemoved', + sts.unit() + ), } -export const sudoAsDone = { - name: 'Sudo.SudoAsDone', - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ - v0: new EventType( - 'Sudo.SudoAsDone', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result( - () => sts.unit(), - () => v0.DispatchError, - ), - }), - ), +export const sudoAsDone = { + name: 'Sudo.SudoAsDone', + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ + v0: new EventType( + 'Sudo.SudoAsDone', + sts.struct({ + /** + * The result of the call made by the sudo user. + */ + sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), } diff --git a/indexers/consensus-squid/src/types/sudo/storage.ts b/indexers/consensus-squid/src/types/sudo/storage.ts index 067124d80..21712c680 100644 --- a/indexers/consensus-squid/src/types/sudo/storage.ts +++ b/indexers/consensus-squid/src/types/sudo/storage.ts @@ -1,17 +1,17 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const key = { - /** - * The `AccountId` of the sudo key. - */ - v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, +export const key = { + /** + * The `AccountId` of the sudo key. + */ + v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, } /** * The `AccountId` of the sudo key. */ -export interface KeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface KeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> } diff --git a/indexers/consensus-squid/src/types/support.ts b/indexers/consensus-squid/src/types/support.ts index 53e364bb5..456dfc2fb 100644 --- a/indexers/consensus-squid/src/types/support.ts +++ b/indexers/consensus-squid/src/types/support.ts @@ -1,146 +1,142 @@ -import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' +import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' +import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' -export { sts, Bytes, BitSequence, Option, Result } + +export {sts, Bytes, BitSequence, Option, Result} + export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } + export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } + interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + export class EventType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } + export class CallType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } + export class ConstantType { - constructor( - private name: QualifiedName, - private type: T, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor(private name: QualifiedName, private type: T) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } + export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged( - pageSize: number, - block: Block, - ...args: any[] - ): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/consensus-squid/src/types/system/calls.ts b/indexers/consensus-squid/src/types/system/calls.ts index 7aab74fd6..24f23464e 100644 --- a/indexers/consensus-squid/src/types/system/calls.ts +++ b/indexers/consensus-squid/src/types/system/calls.ts @@ -1,146 +1,146 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }), - ), +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }) + ), } -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }), - ), +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }) + ), } -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }), - ), +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }) + ), } -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }), - ), +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }) + ), } -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - ), +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }) + ), } -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }), - ), +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }) + ), } -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - ), +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }) + ), } -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }), - ), +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }) + ), } -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }), - ), +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }) + ), } -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }), - ), +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }) + ), } -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }), - ), +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/system/constants.ts b/indexers/consensus-squid/src/types/system/constants.ts index 638f33f60..653ab1df2 100644 --- a/indexers/consensus-squid/src/types/system/constants.ts +++ b/indexers/consensus-squid/src/types/system/constants.ts @@ -1,48 +1,66 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType('System.BlockWeights', v0.BlockWeights), +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType( + 'System.BlockWeights', + v0.BlockWeights + ), } -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType('System.BlockLength', v0.BlockLength), +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType( + 'System.BlockLength', + v0.BlockLength + ), } -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType('System.BlockHashCount', sts.number()), +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType( + 'System.BlockHashCount', + sts.number() + ), } -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType('System.DbWeight', v0.RuntimeDbWeight), +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType( + 'System.DbWeight', + v0.RuntimeDbWeight + ), } -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType('System.Version', v0.RuntimeVersion), +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType( + 'System.Version', + v0.RuntimeVersion + ), } -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType('System.SS58Prefix', sts.number()), +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType( + 'System.SS58Prefix', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/system/events.ts b/indexers/consensus-squid/src/types/system/events.ts index e5a14e4aa..2c8c5731b 100644 --- a/indexers/consensus-squid/src/types/system/events.ts +++ b/indexers/consensus-squid/src/types/system/events.ts @@ -1,91 +1,94 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }), - ), +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }) + ), } -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }), - ), +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }) + ), } -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType('System.CodeUpdated', sts.unit()), +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType( + 'System.CodeUpdated', + sts.unit() + ), } -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }), - ), +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), } -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }), - ), +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), } -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }), - ), +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }) + ), } -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }), - ), +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/system/storage.ts b/indexers/consensus-squid/src/types/system/storage.ts index c2df3d971..9f776b387 100644 --- a/indexers/consensus-squid/src/types/system/storage.ts +++ b/indexers/consensus-squid/src/types/system/storage.ts @@ -1,488 +1,405 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, } /** * The full account information for a particular account ID. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, } /** * Total extrinsics count for the current block. */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, } /** * The current weight for the block. */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise<(v0.PerDispatchClass | undefined)> } -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType( - 'System.AllExtrinsicsLen', - 'Optional', - [], - sts.number(), - ) as AllExtrinsicsLenV0, +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, } /** * Total length (in bytes) for all extrinsics put together, for the current block. */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, } /** * Map of block numbers to block hashes. */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v0.H256 | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType( - 'System.ExtrinsicData', - 'Default', - [sts.number()], - sts.bytes(), - ) as ExtrinsicDataV0, +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, } /** * Extrinsics data for the current block (maps an extrinsic's index to its data). */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: Bytes | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: Bytes | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: Bytes | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: Bytes | undefined][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise<(Bytes | undefined)> + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, } /** * The current block number being processed. Set by `execute_block`. */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, } /** * Hash of the previous block. */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> } -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, } /** * Digest of the current block, also part of the block header. */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v0.EventRecord), - ) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v1.EventRecord), - ) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v5.EventRecord), - ) as EventsV5, +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise<(v0.Digest | undefined)> +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise<(v0.EventRecord[] | undefined)> } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise<(v1.EventRecord[] | undefined)> } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise<(v5.EventRecord[] | undefined)> } -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, } /** * The number of events in the `Events` list. */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType( - 'System.EventTopics', - 'Default', - [v0.H256], - sts.array(() => sts.tuple(() => [sts.number(), sts.number()])), - ) as EventTopicsV0, +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, } /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `>` list. - * + * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. - * + * * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<[number, number][] | undefined> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: [number, number][] | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: [number, number][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType( - 'System.LastRuntimeUpgrade', - 'Optional', - [], - v0.LastRuntimeUpgradeInfo, - ) as LastRuntimeUpgradeV0, +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, } /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> } -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType( - 'System.UpgradedToU32RefCount', - 'Default', - [], - sts.boolean(), - ) as UpgradedToU32RefCountV0, +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, } /** * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType( - 'System.UpgradedToTripleRefCount', - 'Default', - [], - sts.boolean(), - ) as UpgradedToTripleRefCountV0, +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, } /** * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False * (default) if not. */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, } /** * The execution phase of the block. */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Phase | undefined)> } -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType( - 'System.AuthorizedUpgrade', - 'Optional', - [], - v0.CodeUpgradeAuthorization, - ) as AuthorizedUpgradeV0, +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, } /** * `Some` if a code upgrade has been authorized. */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> } -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType( - 'System.InherentsApplied', - 'Default', - [], - sts.boolean(), - ) as InherentsAppliedV5, +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, } /** * Whether all inherents have been applied. */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } diff --git a/indexers/consensus-squid/src/types/timestamp/calls.ts b/indexers/consensus-squid/src/types/timestamp/calls.ts index 23fa0252f..60a975536 100644 --- a/indexers/consensus-squid/src/types/timestamp/calls.ts +++ b/indexers/consensus-squid/src/types/timestamp/calls.ts @@ -1,14 +1,14 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }), - ), +export const set = { + name: 'Timestamp.set', + /** + * See [`Pallet::set`]. + */ + v0: new CallType( + 'Timestamp.set', + sts.struct({ + now: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/timestamp/constants.ts b/indexers/consensus-squid/src/types/timestamp/constants.ts index e9076230e..09884d72c 100644 --- a/indexers/consensus-squid/src/types/timestamp/constants.ts +++ b/indexers/consensus-squid/src/types/timestamp/constants.ts @@ -1,13 +1,16 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType('Timestamp.MinimumPeriod', sts.bigint()), +export const minimumPeriod = { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + */ + v0: new ConstantType( + 'Timestamp.MinimumPeriod', + sts.bigint() + ), } diff --git a/indexers/consensus-squid/src/types/timestamp/storage.ts b/indexers/consensus-squid/src/types/timestamp/storage.ts index 781b93834..1bf820c09 100644 --- a/indexers/consensus-squid/src/types/timestamp/storage.ts +++ b/indexers/consensus-squid/src/types/timestamp/storage.ts @@ -1,39 +1,39 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, +export const now = { + /** + * The current time for the current block. + */ + v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, } /** * The current time for the current block. */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface NowV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, +export const didUpdate = { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, } /** * Whether the timestamp has been updated in this block. - * + * * This value is updated to `true` upon successful submission of a timestamp by a node. * It is then checked at the end of each block execution in the `on_finalize` hook. */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface DidUpdateV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } diff --git a/indexers/consensus-squid/src/types/transaction-fees/constants.ts b/indexers/consensus-squid/src/types/transaction-fees/constants.ts index 36eb4e3eb..60de86b39 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/constants.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/constants.ts @@ -1,31 +1,43 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType('TransactionFees.MinReplicationFactor', sts.number()), +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType( + 'TransactionFees.MinReplicationFactor', + sts.number() + ), } -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType('TransactionFees.CreditSupply', sts.bigint()), +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType( + 'TransactionFees.CreditSupply', + sts.bigint() + ), } -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType('TransactionFees.TotalSpacePledged', sts.bigint()), +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType( + 'TransactionFees.TotalSpacePledged', + sts.bigint() + ), } -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType('TransactionFees.BlockchainHistorySize', sts.bigint()), +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType( + 'TransactionFees.BlockchainHistorySize', + sts.bigint() + ), } diff --git a/indexers/consensus-squid/src/types/transaction-fees/events.ts b/indexers/consensus-squid/src/types/transaction-fees/events.ts index e7afe93bb..4726ccd18 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/events.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/events.ts @@ -1,54 +1,54 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }), - ), +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }) + ), } -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }), - ), +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/transaction-fees/storage.ts b/indexers/consensus-squid/src/types/transaction-fees/storage.ts index 45d0515c6..34c003453 100644 --- a/indexers/consensus-squid/src/types/transaction-fees/storage.ts +++ b/indexers/consensus-squid/src/types/transaction-fees/storage.ts @@ -1,106 +1,86 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType( - 'TransactionFees.TransactionByteFee', - 'Default', - [], - v0.BlockTransactionByteFee, - ) as TransactionByteFeeV0, +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, } /** * The value of `transaction_byte_fee` for both the current and the next block. - * + * * The `next` value of `transaction_byte_fee` is updated at block finalization and used to * validate extrinsic to be included in the next block, the value is move to `current` at * block initialization and used to execute extrinsic in the current block. Together it * ensure we use the same value for both validating and executing the extrinsic. - * + * * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in * the genesis block which means there will be no signed extrinsic included in block #1. */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> } -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType( - 'TransactionFees.IsDuringBlockExecution', - 'Default', - [], - sts.boolean(), - ) as IsDuringBlockExecutionV0, +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, } /** * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` * is used to validate extrinsic or execute extrinsic. */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType( - 'TransactionFees.BlockAuthor', - 'Optional', - [], - v0.AccountId32, - ) as BlockAuthorV0, +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, } /** * Temporary value (cleared at block finalization) which contains current block author, so we * can issue fees during block finalization. */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> } -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType( - 'TransactionFees.CollectedBlockFees', - 'Optional', - [], - v0.CollectedFees, - ) as CollectedBlockFeesV0, +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, } /** * Temporary value (cleared at block finalization) which contains current block fees, so we can * issue fees during block finalization. */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CollectedFees | undefined)> } diff --git a/indexers/consensus-squid/src/types/transaction-payment/constants.ts b/indexers/consensus-squid/src/types/transaction-payment/constants.ts index c7363273b..92856764a 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/constants.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/constants.ts @@ -1,28 +1,31 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType('TransactionPayment.OperationalFeeMultiplier', sts.number()), +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType( + 'TransactionPayment.OperationalFeeMultiplier', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/transaction-payment/events.ts b/indexers/consensus-squid/src/types/transaction-payment/events.ts index 8f317f986..f2e82a56e 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/events.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/events.ts @@ -1,18 +1,18 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - ), +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/transaction-payment/storage.ts b/indexers/consensus-squid/src/types/transaction-payment/storage.ts index 6deaeec28..1fe2ddae7 100644 --- a/indexers/consensus-squid/src/types/transaction-payment/storage.ts +++ b/indexers/consensus-squid/src/types/transaction-payment/storage.ts @@ -1,32 +1,22 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const nextFeeMultiplier = { - v0: new StorageType( - 'TransactionPayment.NextFeeMultiplier', - 'Default', - [], - v0.FixedU128, - ) as NextFeeMultiplierV0, +export const nextFeeMultiplier = { + v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, } -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise<(v0.FixedU128 | undefined)> } -export const storageVersion = { - v0: new StorageType( - 'TransactionPayment.StorageVersion', - 'Default', - [], - v0.Releases, - ) as StorageVersionV0, +export const storageVersion = { + v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, } -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise<(v0.Releases | undefined)> } diff --git a/indexers/consensus-squid/src/types/transporter/calls.ts b/indexers/consensus-squid/src/types/transporter/calls.ts index 6e5dd81f0..a3b19e8e7 100644 --- a/indexers/consensus-squid/src/types/transporter/calls.ts +++ b/indexers/consensus-squid/src/types/transporter/calls.ts @@ -1,16 +1,16 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const transfer = { - name: 'Transporter.transfer', - /** - * See [`Pallet::transfer`]. - */ - v0: new CallType( - 'Transporter.transfer', - sts.struct({ - dstLocation: v0.Location, - amount: sts.bigint(), - }), - ), +export const transfer = { + name: 'Transporter.transfer', + /** + * See [`Pallet::transfer`]. + */ + v0: new CallType( + 'Transporter.transfer', + sts.struct({ + dstLocation: v0.Location, + amount: sts.bigint(), + }) + ), } diff --git a/indexers/consensus-squid/src/types/transporter/events.ts b/indexers/consensus-squid/src/types/transporter/events.ts index 40188b7ee..7d966a266 100644 --- a/indexers/consensus-squid/src/types/transporter/events.ts +++ b/indexers/consensus-squid/src/types/transporter/events.ts @@ -1,86 +1,86 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const outgoingTransferInitiated = { - name: 'Transporter.OutgoingTransferInitiated', - /** - * Emits when there is a new outgoing transfer. - */ - v0: new EventType( - 'Transporter.OutgoingTransferInitiated', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - ), +export const outgoingTransferInitiated = { + name: 'Transporter.OutgoingTransferInitiated', + /** + * Emits when there is a new outgoing transfer. + */ + v0: new EventType( + 'Transporter.OutgoingTransferInitiated', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), } -export const outgoingTransferFailed = { - name: 'Transporter.OutgoingTransferFailed', - /** - * Emits when a given outgoing transfer was failed on dst_chain. - */ - v0: new EventType( - 'Transporter.OutgoingTransferFailed', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - /** - * Error from dst_chain endpoint. - */ - err: v0.DispatchError, - }), - ), +export const outgoingTransferFailed = { + name: 'Transporter.OutgoingTransferFailed', + /** + * Emits when a given outgoing transfer was failed on dst_chain. + */ + v0: new EventType( + 'Transporter.OutgoingTransferFailed', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + /** + * Error from dst_chain endpoint. + */ + err: v0.DispatchError, + }) + ), } -export const outgoingTransferSuccessful = { - name: 'Transporter.OutgoingTransferSuccessful', - /** - * Emits when a given outgoing transfer was successful. - */ - v0: new EventType( - 'Transporter.OutgoingTransferSuccessful', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - ), +export const outgoingTransferSuccessful = { + name: 'Transporter.OutgoingTransferSuccessful', + /** + * Emits when a given outgoing transfer was successful. + */ + v0: new EventType( + 'Transporter.OutgoingTransferSuccessful', + sts.struct({ + /** + * Destination chain the transfer is bound to. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), } -export const incomingTransferSuccessful = { - name: 'Transporter.IncomingTransferSuccessful', - /** - * Emits when a given incoming transfer was successfully processed. - */ - v0: new EventType( - 'Transporter.IncomingTransferSuccessful', - sts.struct({ - /** - * Source chain the transfer is coming from. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - ), +export const incomingTransferSuccessful = { + name: 'Transporter.IncomingTransferSuccessful', + /** + * Emits when a given incoming transfer was successfully processed. + */ + v0: new EventType( + 'Transporter.IncomingTransferSuccessful', + sts.struct({ + /** + * Source chain the transfer is coming from. + */ + chainId: v0.ChainId, + /** + * Id of the transfer. + */ + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }) + ), } diff --git a/indexers/consensus-squid/src/types/transporter/storage.ts b/indexers/consensus-squid/src/types/transporter/storage.ts index f8c638586..d96aabc69 100644 --- a/indexers/consensus-squid/src/types/transporter/storage.ts +++ b/indexers/consensus-squid/src/types/transporter/storage.ts @@ -1,255 +1,132 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const outgoingTransfers = { - /** - * All the outgoing transfers on this execution environment. - */ - v0: new StorageType( - 'Transporter.OutgoingTransfers', - 'Optional', - [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], - v0.Transfer, - ) as OutgoingTransfersV0, +export const outgoingTransfers = { + /** + * All the outgoing transfers on this execution environment. + */ + v0: new StorageType('Transporter.OutgoingTransfers', 'Optional', [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], v0.Transfer) as OutgoingTransfersV0, } /** * All the outgoing transfers on this execution environment. */ -export interface OutgoingTransfersV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise - getMany( - block: Block, - keys: [v0.ChainId, [bigint, bigint]][], - ): Promise<(v0.Transfer | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys( - block: Block, - key1: v0.ChainId, - key2: [bigint, bigint], - ): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - key2: [bigint, bigint], - ): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> - getPairs( - block: Block, - key1: v0.ChainId, - ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> - getPairs( - block: Block, - key1: v0.ChainId, - key2: [bigint, bigint], - ): Promise<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.ChainId, - key2: [bigint, bigint], - ): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: v0.Transfer | undefined][]> +export interface OutgoingTransfersV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<(v0.Transfer | undefined)> + getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(v0.Transfer | undefined)[]> + getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeys(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> + getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairs(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> } -export const domainBalances = { - /** - * Domain balances. - */ - v1: new StorageType( - 'Transporter.DomainBalances', - 'Default', - [v1.DomainId], - sts.bigint(), - ) as DomainBalancesV1, +export const domainBalances = { + /** + * Domain balances. + */ + v1: new StorageType('Transporter.DomainBalances', 'Default', [v1.DomainId], sts.bigint()) as DomainBalancesV1, } /** * Domain balances. */ -export interface DomainBalancesV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: bigint | undefined][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: bigint | undefined][]> +export interface DomainBalancesV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: v1.DomainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> } -export const chainTransfers = { - /** - * A temporary storage that tracks total transfers from this chain. - * Clears on on_initialize for every block. - */ - v1: new StorageType( - 'Transporter.ChainTransfers', - 'Default', - [], - v1.Transfers, - ) as ChainTransfersV1, +export const chainTransfers = { + /** + * A temporary storage that tracks total transfers from this chain. + * Clears on on_initialize for every block. + */ + v1: new StorageType('Transporter.ChainTransfers', 'Default', [], v1.Transfers) as ChainTransfersV1, } /** * A temporary storage that tracks total transfers from this chain. * Clears on on_initialize for every block. */ -export interface ChainTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.Transfers - get(block: Block): Promise +export interface ChainTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.Transfers + get(block: Block): Promise<(v1.Transfers | undefined)> } -export const unconfirmedTransfers = { - /** - * Storage to track unconfirmed transfers between different chains. - */ - v1: new StorageType( - 'Transporter.UnconfirmedTransfers', - 'Default', - [v1.ChainId, v1.ChainId], - sts.bigint(), - ) as UnconfirmedTransfersV1, +export const unconfirmedTransfers = { + /** + * Storage to track unconfirmed transfers between different chains. + */ + v1: new StorageType('Transporter.UnconfirmedTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as UnconfirmedTransfersV1, } /** * Storage to track unconfirmed transfers between different chains. */ -export interface UnconfirmedTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - ): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairs( - block: Block, - key1: v1.ChainId, - ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairs( - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> +export interface UnconfirmedTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> } -export const cancelledTransfers = { - /** - * Storage to track cancelled transfers between different chains. - */ - v1: new StorageType( - 'Transporter.CancelledTransfers', - 'Default', - [v1.ChainId, v1.ChainId], - sts.bigint(), - ) as CancelledTransfersV1, +export const cancelledTransfers = { + /** + * Storage to track cancelled transfers between different chains. + */ + v1: new StorageType('Transporter.CancelledTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as CancelledTransfersV1, } /** * Storage to track cancelled transfers between different chains. */ -export interface CancelledTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - ): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairs( - block: Block, - key1: v1.ChainId, - ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairs( - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): Promise<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.ChainId, - key2: v1.ChainId, - ): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: bigint | undefined][]> +export interface CancelledTransfersV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> + getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> + getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> } diff --git a/indexers/consensus-squid/src/types/utility/calls.ts b/indexers/consensus-squid/src/types/utility/calls.ts index c1bd5c0e9..d40533708 100644 --- a/indexers/consensus-squid/src/types/utility/calls.ts +++ b/indexers/consensus-squid/src/types/utility/calls.ts @@ -1,320 +1,320 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }), - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }), - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }), - ), - /** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ - v5: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }), - ), +export const batch = { + name: 'Utility.batch', + /** + * See [`Pallet::batch`]. + */ + v0: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::batch`]. + */ + v1: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::batch`]. + */ + v3: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + */ + v5: new CallType( + 'Utility.batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), } -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }), - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }), - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }), - ), - /** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v5.Call, - }), - ), +export const asDerivative = { + name: 'Utility.as_derivative', + /** + * See [`Pallet::as_derivative`]. + */ + v0: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v0.Call, + }) + ), + /** + * See [`Pallet::as_derivative`]. + */ + v1: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v1.Call, + }) + ), + /** + * See [`Pallet::as_derivative`]. + */ + v3: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v3.Call, + }) + ), + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + */ + v5: new CallType( + 'Utility.as_derivative', + sts.struct({ + index: sts.number(), + call: v5.Call, + }) + ), } -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }), - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }), - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }), - ), - /** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v5.Call), - }), - ), +export const batchAll = { + name: 'Utility.batch_all', + /** + * See [`Pallet::batch_all`]. + */ + v0: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::batch_all`]. + */ + v1: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::batch_all`]. + */ + v3: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.batch_all', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), } -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }), - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }), - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }), - ), - /** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ - v5: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v5.OriginCaller, - call: v5.Call, - }), - ), +export const dispatchAs = { + name: 'Utility.dispatch_as', + /** + * See [`Pallet::dispatch_as`]. + */ + v0: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v0.OriginCaller, + call: v0.Call, + }) + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v1: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v1.OriginCaller, + call: v1.Call, + }) + ), + /** + * See [`Pallet::dispatch_as`]. + */ + v3: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v3.OriginCaller, + call: v3.Call, + }) + ), + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + */ + v5: new CallType( + 'Utility.dispatch_as', + sts.struct({ + asOrigin: v5.OriginCaller, + call: v5.Call, + }) + ), } -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }), - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }), - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }), - ), - /** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }), - ), +export const forceBatch = { + name: 'Utility.force_batch', + /** + * See [`Pallet::force_batch`]. + */ + v0: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v0.Call), + }) + ), + /** + * See [`Pallet::force_batch`]. + */ + v1: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v1.Call), + }) + ), + /** + * See [`Pallet::force_batch`]. + */ + v3: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v3.Call), + }) + ), + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + */ + v5: new CallType( + 'Utility.force_batch', + sts.struct({ + calls: sts.array(() => v5.Call), + }) + ), } -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }), - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }), - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }), - ), - /** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ - v5: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }), - ), +export const withWeight = { + name: 'Utility.with_weight', + /** + * See [`Pallet::with_weight`]. + */ + v0: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v0.Call, + weight: v0.Weight, + }) + ), + /** + * See [`Pallet::with_weight`]. + */ + v1: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v1.Call, + weight: v1.Weight, + }) + ), + /** + * See [`Pallet::with_weight`]. + */ + v3: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v3.Call, + weight: v3.Weight, + }) + ), + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + */ + v5: new CallType( + 'Utility.with_weight', + sts.struct({ + call: v5.Call, + weight: v5.Weight, + }) + ), } diff --git a/indexers/consensus-squid/src/types/utility/constants.ts b/indexers/consensus-squid/src/types/utility/constants.ts index 892caa33e..e82480598 100644 --- a/indexers/consensus-squid/src/types/utility/constants.ts +++ b/indexers/consensus-squid/src/types/utility/constants.ts @@ -1,8 +1,11 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType('Utility.batched_calls_limit', sts.number()), +export const batchedCallsLimit = { + /** + * The limit on the number of batched calls. + */ + v0: new ConstantType( + 'Utility.batched_calls_limit', + sts.number() + ), } diff --git a/indexers/consensus-squid/src/types/utility/events.ts b/indexers/consensus-squid/src/types/utility/events.ts index 93ef592af..1652db0da 100644 --- a/indexers/consensus-squid/src/types/utility/events.ts +++ b/indexers/consensus-squid/src/types/utility/events.ts @@ -1,70 +1,76 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }), - ), +export const batchInterrupted = { + name: 'Utility.BatchInterrupted', + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ + v0: new EventType( + 'Utility.BatchInterrupted', + sts.struct({ + index: sts.number(), + error: v0.DispatchError, + }) + ), } -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType('Utility.BatchCompleted', sts.unit()), +export const batchCompleted = { + name: 'Utility.BatchCompleted', + /** + * Batch of dispatches completed fully with no error. + */ + v0: new EventType( + 'Utility.BatchCompleted', + sts.unit() + ), } -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType('Utility.BatchCompletedWithErrors', sts.unit()), +export const batchCompletedWithErrors = { + name: 'Utility.BatchCompletedWithErrors', + /** + * Batch of dispatches completed but has errors. + */ + v0: new EventType( + 'Utility.BatchCompletedWithErrors', + sts.unit() + ), } -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType('Utility.ItemCompleted', sts.unit()), +export const itemCompleted = { + name: 'Utility.ItemCompleted', + /** + * A single item within a Batch of dispatches has completed with no error. + */ + v0: new EventType( + 'Utility.ItemCompleted', + sts.unit() + ), } -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }), - ), +export const itemFailed = { + name: 'Utility.ItemFailed', + /** + * A single item within a Batch of dispatches has completed with error. + */ + v0: new EventType( + 'Utility.ItemFailed', + sts.struct({ + error: v0.DispatchError, + }) + ), } -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result( - () => sts.unit(), - () => v0.DispatchError, - ), - }), - ), +export const dispatchedAs = { + name: 'Utility.DispatchedAs', + /** + * A call was dispatched. + */ + v0: new EventType( + 'Utility.DispatchedAs', + sts.struct({ + result: sts.result(() => sts.unit(), () => v0.DispatchError), + }) + ), } diff --git a/indexers/consensus-squid/src/types/v0.ts b/indexers/consensus-squid/src/types/v0.ts index 1de686fd0..14718c7e9 100644 --- a/indexers/consensus-squid/src/types/v0.ts +++ b/indexers/consensus-squid/src/types/v0.ts @@ -1,863 +1,809 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const HistorySize = sts.bigint() export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } + return { + read: sts.bigint(), + write: sts.bigint(), + } }) export interface RuntimeDbWeight { - read: bigint - write: bigint + read: bigint + write: bigint } export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } + return { + max: Type_85, + } }) export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } }) export interface Type_85 { - normal: number - operational: number - mandatory: number + normal: number + operational: number + mandatory: number } export interface BlockLength { - max: Type_85 + max: Type_85 } export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } }) export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } }) export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } }) export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: Weight | undefined - maxTotal?: Weight | undefined - reserved?: Weight | undefined + baseExtrinsic: Weight + maxExtrinsic?: (Weight | undefined) + maxTotal?: (Weight | undefined) + reserved?: (Weight | undefined) } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass } export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 } export interface Transfer { - amount: bigint - sender: Location - receiver: Location + amount: bigint + sender: Location + receiver: Location } export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const Transfer: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - sender: Location, - receiver: Location, - } + return { + amount: sts.bigint(), + sender: Location, + receiver: Location, + } }) export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] + outbox: [ChainId, [bigint, bigint], MessageWeightTag][] + inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] } -export type MessageWeightTag = - | MessageWeightTag_EndpointRequest - | MessageWeightTag_EndpointResponse - | MessageWeightTag_None - | MessageWeightTag_ProtocolChannelClose - | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => - sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag]), - ), - inboxResponses: sts.array(() => - sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag]), - ), - } + return { + outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), + inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: bigint | undefined + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + payload: VersionedPayload + lastDeliveredMessageResponseNonce?: (bigint | undefined) } export type VersionedPayload = VersionedPayload_V0 export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload + __kind: 'V0' + value: Payload } export type Payload = Payload_Endpoint | Payload_Protocol export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 + __kind: 'Endpoint' + value: Type_294 } export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse + __kind: 'Protocol' + value: RequestResponse } export type RequestResponse = RequestResponse_Request | RequestResponse_Response export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest + __kind: 'Request' + value: ProtocolMessageRequest } export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'Response' + value: Result +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } -export type ProtocolMessageRequest = - | ProtocolMessageRequest_ChannelClose - | ProtocolMessageRequest_ChannelOpen +export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' + __kind: 'ChannelClose' } export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams + __kind: 'ChannelOpen' + value: InitiateChannelParams } export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } export interface FeeModel { - relayFee: bigint + relayFee: bigint } export type Type_294 = Type_294_Request | Type_294_Response export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest + __kind: 'Request' + value: EndpointRequest } export interface Type_294_Response { - __kind: 'Response' - value: Result + __kind: 'Response' + value: Result } export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes + srcEndpoint: Endpoint + dstEndpoint: Endpoint + payload: Bytes } export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + payload: VersionedPayload, + lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), + } }) export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } + return { + V0: Payload, + } }) export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } + return { + Endpoint: Type_294, + Protocol: RequestResponse, + } }) export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result( - () => sts.unit(), - () => DispatchError, - ), - } + return { + Request: ProtocolMessageRequest, + Response: sts.result(() => sts.unit(), () => DispatchError), + } }) export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } + return { + ChannelClose: sts.unit(), + ChannelOpen: InitiateChannelParams, + } }) export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result( - () => sts.bytes(), - () => DispatchError, - ), - } + return { + Request: EndpointRequest, + Response: sts.result(() => sts.bytes(), () => DispatchError), + } }) export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } + return { + srcEndpoint: Endpoint, + dstEndpoint: Endpoint, + payload: sts.bytes(), + } }) export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: bigint | undefined - maxOutgoingMessages: number - fee: FeeModel + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: (bigint | undefined) + maxOutgoingMessages: number + fee: FeeModel } export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open export interface ChannelState_Closed { - __kind: 'Closed' + __kind: 'Closed' } export interface ChannelState_Initiated { - __kind: 'Initiated' + __kind: 'Initiated' } export interface ChannelState_Open { - __kind: 'Open' + __kind: 'Open' } export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } }) export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: [DomainEpoch, number, bigint] | undefined + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => - sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), - ), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), + } }) export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -869,104 +815,101 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -974,20 +917,18 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -995,33 +936,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -1029,18 +970,18 @@ export type DomainId = number export type Releases = Releases_V1Ancient | Releases_V2 export interface Releases_V1Ancient { - __kind: 'V1Ancient' + __kind: 'V1Ancient' } export interface Releases_V2 { - __kind: 'V2' + __kind: 'V2' } export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } }) export type FixedU128 = bigint @@ -1048,176 +989,174 @@ export type FixedU128 = bigint export const FixedU128 = sts.bigint() export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint + storage: bigint + compute: bigint + tips: bigint } export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } }) export interface BlockTransactionByteFee { - current: bigint - next: bigint + current: bigint + next: bigint } export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } + return { + current: sts.bigint(), + next: sts.bigint(), + } }) export interface Type_152 { - amount: bigint + amount: bigint } export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } + return { + amount: sts.bigint(), + } }) export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface ReserveData { - id: Bytes - amount: bigint + id: Bytes + amount: bigint } export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } + return { + id: sts.bytes(), + amount: sts.bigint(), + } }) export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons + id: Bytes + amount: bigint + reasons: Reasons } export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc export interface Reasons_All { - __kind: 'All' + __kind: 'All' } export interface Reasons_Fee { - __kind: 'Fee' + __kind: 'Fee' } export interface Reasons_Misc { - __kind: 'Misc' + __kind: 'Misc' } export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } }) export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } }) export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags } export type ExtraFlags = bigint export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } }) export const ExtraFlags = sts.bigint() export interface OffenceDetails { - offender: Public + offender: Public } export const OffenceDetails: sts.Type = sts.struct(() => { - return { - offender: Public, - } + return { + offender: Public, + } }) export type Randomness = Bytes @@ -1225,15 +1164,15 @@ export type Randomness = Bytes export const Randomness = sts.bytes() export interface PotEntropyValue { - targetSlot?: Slot | undefined - entropy: Bytes + targetSlot?: (Slot | undefined) + entropy: Bytes } export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } }) export type Signature = Bytes @@ -1241,33 +1180,33 @@ export type Signature = Bytes export const Signature = sts.bytes() export interface Scalar { - inner: Bytes + inner: Bytes } export type PieceOffset = number export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export const PieceOffset = sts.number() export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot } export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } }) export type SegmentIndex = bigint @@ -1281,31 +1220,31 @@ export const SegmentIndex = sts.bigint() export type Public = Bytes export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint + solutionRange: bigint + votingSolutionRange: bigint } export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } }) export interface SolutionRanges { - current: bigint - next?: bigint | undefined - votingCurrent: bigint - votingNext?: bigint | undefined + current: bigint + next?: (bigint | undefined) + votingCurrent: bigint + votingNext?: (bigint | undefined) } export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } }) export type NonZeroU32 = number @@ -1317,196 +1256,174 @@ export type Slot = bigint export const Slot = sts.bigint() export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean + codeHash: H256 + checkVersion: boolean } export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } + return { + codeHash: H256, + checkVersion: sts.boolean(), + } }) export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string + specVersion: number + specName: string } export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } + return { + specVersion: sts.number(), + specName: sts.string(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -1514,105 +1431,101 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError + __kind: 'ItemFailed' + error: DispatchError } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -1625,215 +1538,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1845,45 +1742,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } /** @@ -1895,18 +1792,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1920,130 +1817,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -2051,219 +1940,175 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = - | SlashedReason_BadExecutionReceipt - | SlashedReason_BundleEquivocation - | SlashedReason_InvalidBundle +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -2271,61 +2116,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -2333,1195 +2178,1165 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) /** * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } -export type DigestItem = - | DigestItem_Consensus - | DigestItem_Other - | DigestItem_PreRuntime - | DigestItem_RuntimeEnvironmentUpdated - | DigestItem_Seal +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) export type H256 = Bytes export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight + normal: Weight + operational: Weight + mandatory: Weight } export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } }) export type AccountId32 = Bytes export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData } export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + } }) export interface BlockInfo { - blockNumber: number - blockHash: H256 + blockNumber: number + blockHash: H256 } export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: [BlockInfo, StorageProof] | undefined - messageProof: StorageProof + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: ([BlockInfo, StorageProof] | undefined) + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return {} + return { + } }) export type Void = never @@ -3529,225 +3344,210 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = - | VestingCall_claim - | VestingCall_claim_for - | VestingCall_update_vesting_schedules - | VestingCall_vested_transfer +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } -export type MultiAddress = - | MultiAddress_Address20 - | MultiAddress_Address32 - | MultiAddress_Id - | MultiAddress_Index - | MultiAddress_Raw +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = - | UtilityCall_as_derivative - | UtilityCall_batch - | UtilityCall_batch_all - | UtilityCall_dispatch_as - | UtilityCall_force_batch - | UtilityCall_with_weight +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) /** @@ -3759,20 +3559,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3784,345 +3584,323 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = - | SystemCall_apply_authorized_upgrade - | SystemCall_authorize_upgrade - | SystemCall_authorize_upgrade_without_checks - | SystemCall_kill_prefix - | SystemCall_kill_storage - | SystemCall_remark - | SystemCall_remark_with_event - | SystemCall_set_code - | SystemCall_set_code_without_checks - | SystemCall_set_heap_pages - | SystemCall_set_storage +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = - | SudoCall_remove_key - | SudoCall_set_key - | SudoCall_sudo - | SudoCall_sudo_as - | SudoCall_sudo_unchecked_weight +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = - | SubspaceCall_enable_authoring_by_anyone - | SubspaceCall_enable_rewards_at - | SubspaceCall_enable_solution_range_adjustment - | SubspaceCall_report_equivocation - | SubspaceCall_store_segment_headers - | SubspaceCall_vote +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: bigint | undefined - votingSolutionRangeOverride?: bigint | undefined + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -4136,596 +3914,553 @@ export type RecordCommitment = Bytes export type HistorySize = bigint export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } -export type EnableRewardsAt = - | EnableRewardsAt_Height - | EnableRewardsAt_Manually - | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: number | undefined + __kind: 'Height' + value?: (number | undefined) } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = - | RuntimeConfigsCall_set_enable_balance_transfers - | RuntimeConfigsCall_set_enable_domains - | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage - | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = - | MessengerCall_close_channel - | MessengerCall_initiate_channel - | MessengerCall_relay_message - | MessengerCall_relay_message_response +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = - | DomainsCall_deregister_operator - | DomainsCall_force_staking_epoch_transition - | DomainsCall_instantiate_domain - | DomainsCall_nominate_operator - | DomainsCall_register_domain_runtime - | DomainsCall_register_operator - | DomainsCall_submit_bundle - | DomainsCall_submit_fraud_proof - | DomainsCall_switch_domain - | DomainsCall_unlock_funds - | DomainsCall_unlock_operator - | DomainsCall_update_domain_operator_allow_list - | DomainsCall_upgrade_domain_runtime - | DomainsCall_withdraw_stake +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::switch_domain`]. */ export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = - | BalancesCall_force_set_balance - | BalancesCall_force_transfer - | BalancesCall_force_unreserve - | BalancesCall_transfer_all - | BalancesCall_transfer_allow_death - | BalancesCall_transfer_keep_alive - | BalancesCall_upgrade_accounts +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = - | Call_Balances - | Call_Domains - | Call_Messenger - | Call_RuntimeConfigs - | Call_Subspace - | Call_Sudo - | Call_System - | Call_Timestamp - | Call_Transporter - | Call_Utility - | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -4737,93 +4472,90 @@ export const RecordWitness = sts.bytes() export const RecordCommitment = sts.bytes() export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const DomainId = sts.number() export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Public = sts.bytes() export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const H256 = sts.bytes() @@ -4831,80 +4563,80 @@ export const H256 = sts.bytes() export const AccountId32 = sts.bytes() export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) diff --git a/indexers/consensus-squid/src/types/v1.ts b/indexers/consensus-squid/src/types/v1.ts index dc0bd5b4f..c090e8b5b 100644 --- a/indexers/consensus-squid/src/types/v1.ts +++ b/indexers/consensus-squid/src/types/v1.ts @@ -1,204 +1,199 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const PalletId = sts.bytes() export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -206,245 +201,239 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: WithdrawalInShares | undefined + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: (WithdrawalInShares | undefined) } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() @@ -452,222 +441,197 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking - | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -675,265 +639,234 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -946,215 +879,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1166,45 +1083,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1222,18 +1139,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1247,130 +1164,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1378,174 +1287,150 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_StorageFeeDeposited - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = - | SlashedReason_BadExecutionReceipt - | SlashedReason_BundleEquivocation - | SlashedReason_InvalidBundle +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export type Slot = bigint @@ -1553,60 +1438,39 @@ export type Slot = bigint export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1614,61 +1478,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1676,438 +1540,429 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -2120,828 +1975,803 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const Slot = sts.bigint() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) -export type MultiAddress = - | MultiAddress_Address20 - | MultiAddress_Address32 - | MultiAddress_Id - | MultiAddress_Index - | MultiAddress_Raw +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_InvalidTransfers - | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return {} + return { + } }) export type Void = never @@ -2949,206 +2779,196 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = - | VestingCall_claim - | VestingCall_claim_for - | VestingCall_update_vesting_schedules - | VestingCall_vested_transfer +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = - | UtilityCall_as_derivative - | UtilityCall_batch - | UtilityCall_batch_all - | UtilityCall_dispatch_as - | UtilityCall_force_batch - | UtilityCall_with_weight +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -3160,20 +2980,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3185,291 +3005,275 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = - | SystemCall_apply_authorized_upgrade - | SystemCall_authorize_upgrade - | SystemCall_authorize_upgrade_without_checks - | SystemCall_kill_prefix - | SystemCall_kill_storage - | SystemCall_remark - | SystemCall_remark_with_event - | SystemCall_set_code - | SystemCall_set_code_without_checks - | SystemCall_set_heap_pages - | SystemCall_set_storage +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = - | SudoCall_remove_key - | SudoCall_set_key - | SudoCall_sudo - | SudoCall_sudo_as - | SudoCall_sudo_unchecked_weight +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3477,13 +3281,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -3495,16 +3299,16 @@ export const PieceOffset = sts.number() export const HistorySize = sts.bigint() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3522,831 +3326,772 @@ export type HistorySize = bigint export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) -export type DigestItem = - | DigestItem_Consensus - | DigestItem_Other - | DigestItem_PreRuntime - | DigestItem_RuntimeEnvironmentUpdated - | DigestItem_Seal +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = - | EnableRewardsAt_Height - | EnableRewardsAt_Manually - | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: number | undefined + __kind: 'Height' + value?: (number | undefined) } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = - | SubspaceCall_enable_authoring_by_anyone - | SubspaceCall_enable_rewards_at - | SubspaceCall_enable_solution_range_adjustment - | SubspaceCall_report_equivocation - | SubspaceCall_store_segment_headers - | SubspaceCall_vote +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: bigint | undefined - votingSolutionRangeOverride?: bigint | undefined + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = - | RuntimeConfigsCall_set_enable_balance_transfers - | RuntimeConfigsCall_set_enable_domains - | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage - | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + } }) export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } -export type MessageWeightTag = - | MessageWeightTag_EndpointRequest - | MessageWeightTag_EndpointResponse - | MessageWeightTag_None - | MessageWeightTag_ProtocolChannelClose - | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } + return { + consensusChainBlockInfo: BlockInfo, + consensusChainStateRoot: H256, + domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), + messageProof: StorageProof, + } }) export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + } }) export interface BlockInfo { - blockNumber: number - blockHash: H256 + blockNumber: number + blockHash: H256 } export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: [BlockInfo, StorageProof] | undefined - messageProof: StorageProof + consensusChainBlockInfo: BlockInfo + consensusChainStateRoot: H256 + domainProof?: ([BlockInfo, StorageProof] | undefined) + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export interface FeeModel { - relayFee: bigint + relayFee: bigint } export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = - | MessengerCall_close_channel - | MessengerCall_initiate_channel - | MessengerCall_relay_message - | MessengerCall_relay_message_response +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + switch_domain: sts.enumStruct({ + operatorId: sts.bigint(), + newDomainId: DomainId, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = - | DomainsCall_deregister_operator - | DomainsCall_force_staking_epoch_transition - | DomainsCall_instantiate_domain - | DomainsCall_nominate_operator - | DomainsCall_register_domain_runtime - | DomainsCall_register_operator - | DomainsCall_submit_bundle - | DomainsCall_submit_fraud_proof - | DomainsCall_switch_domain - | DomainsCall_unlock_funds - | DomainsCall_unlock_operator - | DomainsCall_update_domain_operator_allow_list - | DomainsCall_upgrade_domain_runtime - | DomainsCall_withdraw_stake +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::switch_domain`]. */ export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId + __kind: 'switch_domain' + operatorId: bigint + newDomainId: DomainId } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = - | BalancesCall_force_set_balance - | BalancesCall_force_transfer - | BalancesCall_force_unreserve - | BalancesCall_transfer_all - | BalancesCall_transfer_allow_death - | BalancesCall_transfer_keep_alive - | BalancesCall_upgrade_accounts +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = - | Call_Balances - | Call_Domains - | Call_Messenger - | Call_RuntimeConfigs - | Call_Subspace - | Call_Sudo - | Call_System - | Call_Timestamp - | Call_Transporter - | Call_Utility - | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const AccountId32 = sts.bytes() diff --git a/indexers/consensus-squid/src/types/v3.ts b/indexers/consensus-squid/src/types/v3.ts index 3b1c72656..7d6b8f87e 100644 --- a/indexers/consensus-squid/src/types/v3.ts +++ b/indexers/consensus-squid/src/types/v3.ts @@ -1,132 +1,128 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] + allowChains: ChainId[] + removeChains: ChainId[] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: bigint | undefined - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: AccountId32 | undefined + channelId: bigint + state: ChannelState + nextInboxNonce: bigint + nextOutboxNonce: bigint + latestResponseReceivedMessageNonce?: (bigint | undefined) + maxOutgoingMessages: number + fee: FeeModel + maybeOwner?: (AccountId32 | undefined) } export interface FeeModel { - relayFee: bigint + relayFee: bigint } export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open export interface ChannelState_Closed { - __kind: 'Closed' + __kind: 'Closed' } export interface ChannelState_Initiated { - __kind: 'Initiated' + __kind: 'Initiated' } export interface ChannelState_Open { - __kind: 'Open' + __kind: 'Open' } export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } + return { + channelId: sts.bigint(), + state: ChannelState, + nextInboxNonce: sts.bigint(), + nextOutboxNonce: sts.bigint(), + latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), + maxOutgoingMessages: sts.number(), + fee: FeeModel, + maybeOwner: sts.option(() => AccountId32), + } }) export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } + return { + relayFee: sts.bigint(), + } }) export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } + return { + Closed: sts.unit(), + Initiated: sts.unit(), + Open: sts.unit(), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export type DomainId = number export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_PendingSlash - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -134,36 +130,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) @@ -173,88 +169,85 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier + __kind: 'Messenger' + value: MessengerHoldIdentifier } export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] + __kind: 'Channel' + value: [ChainId, bigint] } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking - | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } }) export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export const AccountId32 = sts.bytes() @@ -264,188 +257,178 @@ export type Slot = bigint export const Slot = sts.bigint() export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = - | MultiAddress_Address20 - | MultiAddress_Address32 - | MultiAddress_Id - | MultiAddress_Index - | MultiAddress_Raw + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } }) export const DomainId = sts.number() export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } + return { + Add: ChainId, + Remove: ChainId, + } }) export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId + __kind: 'Add' + value: ChainId } export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId + __kind: 'Remove' + value: ChainId } export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Proof, + weightTag: MessageWeightTag, + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } -export type MessageWeightTag = - | MessageWeightTag_EndpointRequest - | MessageWeightTag_EndpointResponse - | MessageWeightTag_None - | MessageWeightTag_ProtocolChannelClose - | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } + return { + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Type_237, + } }) export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type H256 = Bytes @@ -455,9 +438,9 @@ export const EncodableOpaqueLeaf = sts.bytes() export const H256 = sts.bytes() export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Type_237 } export type EncodableOpaqueLeaf = Bytes @@ -465,71 +448,72 @@ export type EncodableOpaqueLeaf = Bytes export type Proof = Proof_Consensus | Proof_Domain export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof } export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Proof + weightTag: MessageWeightTag } export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return {} + return { + } }) export type Void = never @@ -537,251 +521,238 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = - | VestingCall_claim - | VestingCall_claim_for - | VestingCall_update_vesting_schedules - | VestingCall_vested_transfer +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer /** * See [`Pallet::claim`]. */ export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } /** * See [`Pallet::claim_for`]. */ export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } /** * See [`Pallet::update_vesting_schedules`]. */ export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } /** * See [`Pallet::vested_transfer`]. */ export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = - | UtilityCall_as_derivative - | UtilityCall_batch - | UtilityCall_batch_all - | UtilityCall_dispatch_as - | UtilityCall_force_batch - | UtilityCall_with_weight +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight /** * See [`Pallet::as_derivative`]. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * See [`Pallet::batch`]. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * See [`Pallet::batch_all`]. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * See [`Pallet::dispatch_as`]. */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * See [`Pallet::force_batch`]. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * See [`Pallet::with_weight`]. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -793,20 +764,20 @@ export type TransporterCall = TransporterCall_transfer * See [`Pallet::transfer`]. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -818,293 +789,277 @@ export type TimestampCall = TimestampCall_set * See [`Pallet::set`]. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = - | SystemCall_apply_authorized_upgrade - | SystemCall_authorize_upgrade - | SystemCall_authorize_upgrade_without_checks - | SystemCall_kill_prefix - | SystemCall_kill_storage - | SystemCall_remark - | SystemCall_remark_with_event - | SystemCall_set_code - | SystemCall_set_code_without_checks - | SystemCall_set_heap_pages - | SystemCall_set_storage +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage /** * See [`Pallet::apply_authorized_upgrade`]. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * See [`Pallet::authorize_upgrade`]. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * See [`Pallet::authorize_upgrade_without_checks`]. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * See [`Pallet::kill_prefix`]. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * See [`Pallet::kill_storage`]. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * See [`Pallet::remark`]. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * See [`Pallet::remark_with_event`]. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * See [`Pallet::set_code`]. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * See [`Pallet::set_code_without_checks`]. */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * See [`Pallet::set_heap_pages`]. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * See [`Pallet::set_storage`]. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = - | SudoCall_remove_key - | SudoCall_set_key - | SudoCall_sudo - | SudoCall_sudo_as - | SudoCall_sudo_unchecked_weight +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight /** * See [`Pallet::remove_key`]. */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** * See [`Pallet::set_key`]. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * See [`Pallet::sudo`]. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * See [`Pallet::sudo_as`]. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * See [`Pallet::sudo_unchecked_weight`]. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -1112,13 +1067,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -1132,16 +1087,16 @@ export const HistorySize = sts.bigint() export const Public = sts.bytes() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -1161,63 +1116,63 @@ export type Public = Bytes export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export const SegmentCommitment = sts.bytes() @@ -1227,11 +1182,11 @@ export const SegmentIndex = sts.bigint() export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export type SegmentCommitment = Bytes @@ -1239,247 +1194,229 @@ export type SegmentCommitment = Bytes export type SegmentIndex = bigint export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = - | DigestItem_Consensus - | DigestItem_Other - | DigestItem_PreRuntime - | DigestItem_RuntimeEnvironmentUpdated - | DigestItem_Seal + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = - | EnableRewardsAt_Height - | EnableRewardsAt_Manually - | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: number | undefined + __kind: 'Height' + value?: (number | undefined) } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = - | SubspaceCall_enable_authoring_by_anyone - | SubspaceCall_enable_rewards_at - | SubspaceCall_enable_solution_range_adjustment - | SubspaceCall_report_equivocation - | SubspaceCall_store_segment_headers - | SubspaceCall_vote +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote /** * See [`Pallet::enable_authoring_by_anyone`]. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * See [`Pallet::enable_rewards_at`]. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** * See [`Pallet::enable_solution_range_adjustment`]. */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: bigint | undefined - votingSolutionRangeOverride?: bigint | undefined + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) } /** * See [`Pallet::report_equivocation`]. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** * See [`Pallet::store_segment_headers`]. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * See [`Pallet::vote`]. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = - | RuntimeConfigsCall_set_enable_balance_transfers - | RuntimeConfigsCall_set_enable_domains - | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage - | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls /** * See [`Pallet::set_enable_balance_transfers`]. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * See [`Pallet::set_enable_domains`]. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * See [`Pallet::set_enable_dynamic_cost_of_storage`]. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * See [`Pallet::set_enable_non_root_calls`]. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } }) /** @@ -1491,1107 +1428,1045 @@ export type RewardsCall = RewardsCall_update_issuance_params * See [`Pallet::update_issuance_params`]. */ export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } }) export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } + return { + maxOutgoingMessages: sts.number(), + feeModel: FeeModel, + } }) export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel + maxOutgoingMessages: number + feeModel: FeeModel } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = - | MessengerCall_close_channel - | MessengerCall_initiate_channel - | MessengerCall_initiate_domain_update_chain_allowlist - | MessengerCall_relay_message - | MessengerCall_relay_message_response - | MessengerCall_update_consensus_chain_allowlist - | MessengerCall_update_domain_allowlist +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist /** * See [`Pallet::close_channel`]. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** * See [`Pallet::initiate_channel`]. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * See [`Pallet::initiate_domain_update_chain_allowlist`]. */ export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate } /** * See [`Pallet::relay_message`]. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * See [`Pallet::relay_message_response`]. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * See [`Pallet::update_consensus_chain_allowlist`]. */ export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate } /** * See [`Pallet::update_domain_allowlist`]. */ export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_InvalidTransfers - | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = - | DomainsCall_deregister_operator - | DomainsCall_force_staking_epoch_transition - | DomainsCall_instantiate_domain - | DomainsCall_nominate_operator - | DomainsCall_register_domain_runtime - | DomainsCall_register_operator - | DomainsCall_submit_bundle - | DomainsCall_submit_fraud_proof - | DomainsCall_unlock_funds - | DomainsCall_unlock_operator - | DomainsCall_update_domain_operator_allow_list - | DomainsCall_upgrade_domain_runtime - | DomainsCall_withdraw_stake +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake /** * See [`Pallet::deregister_operator`]. */ export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * See [`Pallet::force_staking_epoch_transition`]. */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } /** * See [`Pallet::instantiate_domain`]. */ export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } /** * See [`Pallet::nominate_operator`]. */ export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } /** * See [`Pallet::register_domain_runtime`]. */ export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } /** * See [`Pallet::register_operator`]. */ export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig } /** * See [`Pallet::submit_bundle`]. */ export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } /** * See [`Pallet::submit_fraud_proof`]. */ export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** * See [`Pallet::unlock_funds`]. */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** * See [`Pallet::unlock_operator`]. */ export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint + __kind: 'unlock_operator' + operatorId: bigint } /** * See [`Pallet::update_domain_operator_allow_list`]. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } /** * See [`Pallet::upgrade_domain_runtime`]. */ export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } /** * See [`Pallet::withdraw_stake`]. */ export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = - | BalancesCall_force_set_balance - | BalancesCall_force_transfer - | BalancesCall_force_unreserve - | BalancesCall_transfer_all - | BalancesCall_transfer_allow_death - | BalancesCall_transfer_keep_alive - | BalancesCall_upgrade_accounts +export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts /** * See [`Pallet::force_set_balance`]. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** * See [`Pallet::force_transfer`]. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * See [`Pallet::force_unreserve`]. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * See [`Pallet::transfer_all`]. */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * See [`Pallet::transfer_allow_death`]. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * See [`Pallet::transfer_keep_alive`]. */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * See [`Pallet::upgrade_accounts`]. */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = - | Call_Balances - | Call_Domains - | Call_Messenger - | Call_Rewards - | Call_RuntimeConfigs - | Call_Subspace - | Call_Sudo - | Call_System - | Call_Timestamp - | Call_Transporter - | Call_Utility - | Call_Vesting + __kind: 'upgrade_accounts' + who: AccountId32[] +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall + __kind: 'Rewards' + value: RewardsCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } diff --git a/indexers/consensus-squid/src/types/v5.ts b/indexers/consensus-squid/src/types/v5.ts index 500fdb520..bbfb77cef 100644 --- a/indexers/consensus-squid/src/types/v5.ts +++ b/indexers/consensus-squid/src/types/v5.ts @@ -1,115 +1,98 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const Perbill = sts.number() export interface MessageWeightTags { - outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] - inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] + outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] + inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] } -export type MessageWeightTag = - | MessageWeightTag_EndpointRequest - | MessageWeightTag_EndpointResponse - | MessageWeightTag_None - | MessageWeightTag_ProtocolChannelClose - | MessageWeightTag_ProtocolChannelOpen +export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint + __kind: 'EndpointRequest' + value: Endpoint } export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint + __kind: 'EndpointResponse' + value: Endpoint } export interface MessageWeightTag_None { - __kind: 'None' + __kind: 'None' } export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' + __kind: 'ProtocolChannelClose' } export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' + __kind: 'ProtocolChannelOpen' } export type Endpoint = Endpoint_Id export interface Endpoint_Id { - __kind: 'Id' - value: bigint + __kind: 'Id' + value: bigint } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export const MessageWeightTags: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), - MessageWeightTag, - ]), - ), - inboxResponses: sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), - MessageWeightTag, - ]), - ), - } + return { + outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), + inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), + } }) export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } + return { + EndpointRequest: Endpoint, + EndpointResponse: Endpoint, + None: sts.unit(), + ProtocolChannelClose: sts.unit(), + ProtocolChannelOpen: sts.unit(), + } }) export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } + return { + Id: sts.bigint(), + } }) export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = - | PermissionedActionAllowedBy_Accounts - | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -117,149 +100,144 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidBundleWeight - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -267,146 +245,143 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -416,47 +391,45 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -464,156 +437,134 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -621,265 +572,234 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -892,215 +812,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1112,45 +1016,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1168,18 +1072,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1193,130 +1097,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1324,220 +1220,177 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_StorageFeeDeposited - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_TotalIssuanceForced - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1545,61 +1398,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1607,447 +1460,438 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * The `TotalIssuance` was forcefully changed. */ export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -2060,388 +1904,380 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } }) -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } }) -export type MultiAddress = - | MultiAddress_Address20 - | MultiAddress_Address32 - | MultiAddress_Id - | MultiAddress_Index - | MultiAddress_Raw +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Type_251, - weightTag: MessageWeightTag, - } + return { + srcChainId: ChainId, + dstChainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + proof: Type_251, + weightTag: MessageWeightTag, + } }) export const Type_251: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } + return { + Consensus: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + messageProof: StorageProof, + }), + Domain: sts.enumStruct({ + consensusChainMmrProof: ConsensusChainMmrLeafProof, + domainProof: StorageProof, + messageProof: StorageProof, + }), + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export const EncodableOpaqueLeaf = sts.bytes() export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export type EncodableOpaqueLeaf = Bytes @@ -2449,67 +2285,65 @@ export type EncodableOpaqueLeaf = Bytes export type Type_251 = Type_251_Consensus | Type_251_Domain export interface Type_251_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof + __kind: 'Consensus' + consensusChainMmrProof: ConsensusChainMmrLeafProof + messageProof: StorageProof } export interface Type_251_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof + __kind: 'Domain' + consensusChainMmrProof: ConsensusChainMmrLeafProof + domainProof: StorageProof + messageProof: StorageProof } export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Type_251 - weightTag: MessageWeightTag + srcChainId: ChainId + dstChainId: ChainId + channelId: bigint + nonce: bigint + proof: Type_251 + weightTag: MessageWeightTag } export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - } + return { + maxOutgoingMessages: sts.number(), + } }) export interface InitiateChannelParams { - maxOutgoingMessages: number + maxOutgoingMessages: number } export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( - () => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } - }, -) +}) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -2517,556 +2351,536 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = - sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } - }) +}) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = - sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } - }) +}) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = - | InvalidBundlesProofData_Bundle - | InvalidBundlesProofData_BundleAndExecution - | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = - | FraudProofVariant_InvalidBlockFees - | FraudProofVariant_InvalidBundles - | FraudProofVariant_InvalidDomainBlockHash - | FraudProofVariant_InvalidExtrinsicsRoot - | FraudProofVariant_InvalidStateTransition - | FraudProofVariant_InvalidTransfers - | FraudProofVariant_ValidBundle +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: ConsensusChainMmrLeafProof | undefined - maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } + return { + Void: Void, + system: RawOrigin, + } }) export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } + return { + None: sts.unit(), + Root: sts.unit(), + Signed: AccountId32, + } }) export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed export interface RawOrigin_None { - __kind: 'None' + __kind: 'None' } export interface RawOrigin_Root { - __kind: 'Root' + __kind: 'Root' } export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 + __kind: 'Signed' + value: AccountId32 } export const Void: sts.Type = sts.closedEnum(() => { - return {} + return { + } }) export type Void = never @@ -3074,157 +2888,147 @@ export type Void = never export type OriginCaller = OriginCaller_Void | OriginCaller_system export interface OriginCaller_Void { - __kind: 'Void' - value: Void + __kind: 'Void' + value: Void } export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin + __kind: 'system' + value: RawOrigin } export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } + return { + Balances: BalancesCall, + Domains: DomainsCall, + Messenger: MessengerCall, + Rewards: RewardsCall, + RuntimeConfigs: RuntimeConfigsCall, + Subspace: SubspaceCall, + Sudo: SudoCall, + System: SystemCall, + Timestamp: TimestampCall, + Transporter: TransporterCall, + Utility: UtilityCall, + Vesting: VestingCall, + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } + return { + claim: sts.unit(), + claim_for: sts.enumStruct({ + dest: MultiAddress, + }), + update_vesting_schedules: sts.enumStruct({ + who: MultiAddress, + vestingSchedules: sts.array(() => VestingSchedule), + }), + vested_transfer: sts.enumStruct({ + dest: MultiAddress, + schedule: VestingSchedule, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type VestingCall = - | VestingCall_claim - | VestingCall_claim_for - | VestingCall_update_vesting_schedules - | VestingCall_vested_transfer +export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer export interface VestingCall_claim { - __kind: 'claim' + __kind: 'claim' } export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress + __kind: 'claim_for' + dest: MultiAddress } export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] + __kind: 'update_vesting_schedules' + who: MultiAddress + vestingSchedules: VestingSchedule[] } export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule + __kind: 'vested_transfer' + dest: MultiAddress + schedule: VestingSchedule } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + as_derivative: sts.enumStruct({ + index: sts.number(), + call: Call, + }), + batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + batch_all: sts.enumStruct({ + calls: sts.array(() => Call), + }), + dispatch_as: sts.enumStruct({ + asOrigin: OriginCaller, + call: Call, + }), + force_batch: sts.enumStruct({ + calls: sts.array(() => Call), + }), + with_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type UtilityCall = - | UtilityCall_as_derivative - | UtilityCall_batch - | UtilityCall_batch_all - | UtilityCall_dispatch_as - | UtilityCall_force_batch - | UtilityCall_with_weight +export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight /** * Send a call through an indexed pseudonym of the sender. - * + * * Filter from origin are passed along. The call will be dispatched with an origin which * use the same filter as the origin of this call. - * + * * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. * because you expect `proxy` to have been used prior in the call stack and you do not want * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` * in the Multisig pallet instead. - * + * * NOTE: Prior to version *12, this was called `as_limited_sub`. - * + * * The dispatch origin for this call must be _Signed_. */ export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call + __kind: 'as_derivative' + index: number + call: Call } /** * Send a batch of dispatch calls. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. - * + * * This will return `Ok` in all circumstances. To determine the success of the batch, an * event is deposited. If a call failed and the batch was interrupted, then the * `BatchInterrupted` event is deposited, along with the number of successful calls made @@ -3232,100 +3036,100 @@ export interface UtilityCall_as_derivative { * event is deposited. */ export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] + __kind: 'batch' + calls: Call[] } /** * Send a batch of dispatch calls and atomically execute them. * The whole transaction will rollback and fail if any of the calls failed. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatched without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. */ export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] + __kind: 'batch_all' + calls: Call[] } /** * Dispatches a function call with a provided origin. - * + * * The dispatch origin for this call must be _Root_. - * + * * ## Complexity * - O(1). */ export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call + __kind: 'dispatch_as' + asOrigin: OriginCaller + call: Call } /** * Send a batch of dispatch calls. * Unlike `batch`, it allows errors and won't interrupt. - * + * * May be called from any origin except `None`. - * + * * - `calls`: The calls to be dispatched from the same origin. The number of call must not * exceed the constant: `batched_calls_limit` (available in constant metadata). - * + * * If origin is root then the calls are dispatch without checking origin filter. (This * includes bypassing `frame_system::Config::BaseCallFilter`). - * + * * ## Complexity * - O(C) where C is the number of calls to be batched. */ export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] + __kind: 'force_batch' + calls: Call[] } /** * Dispatch a function call with a specified weight. - * + * * This function does not check the weight of the call, and instead allows the * Root origin to specify the weight of the call. - * + * * The dispatch origin for this call must be _Root_. */ export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight + __kind: 'with_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } + return { + transfer: sts.enumStruct({ + dstLocation: Location, + amount: sts.bigint(), + }), + } }) export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } + return { + chainId: ChainId, + accountId: MultiAccountId, + } }) export interface Location { - chainId: ChainId - accountId: MultiAccountId + chainId: ChainId + accountId: MultiAccountId } /** @@ -3338,20 +3142,20 @@ export type TransporterCall = TransporterCall_transfer * Funds are burned on src_chain first and are minted on dst_chain using Messenger. */ export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint + __kind: 'transfer' + dstLocation: Location + amount: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } + return { + set: sts.enumStruct({ + now: sts.bigint(), + }), + } }) /** @@ -3361,19 +3165,19 @@ export type TimestampCall = TimestampCall_set /** * Set the current time. - * + * * This call should be invoked exactly once per block. It will panic at the finalization * phase, if this call hasn't been invoked by that time. - * + * * The timestamp should be greater than the previous one by the amount specified by * [`Config::MinimumPeriod`]. - * + * * The dispatch origin for this call must be _None_. - * + * * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware * that changing the complexity of this call could result exhausting the resources in a * block to execute any other calls. - * + * * ## Complexity * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in @@ -3381,223 +3185,207 @@ export type TimestampCall = TimestampCall_set * - 1 event handler `on_timestamp_set`. Must be `O(1)`. */ export interface TimestampCall_set { - __kind: 'set' - now: bigint + __kind: 'set' + now: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } + return { + apply_authorized_upgrade: sts.enumStruct({ + code: sts.bytes(), + }), + authorize_upgrade: sts.enumStruct({ + codeHash: H256, + }), + authorize_upgrade_without_checks: sts.enumStruct({ + codeHash: H256, + }), + kill_prefix: sts.enumStruct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }), + kill_storage: sts.enumStruct({ + keys: sts.array(() => sts.bytes()), + }), + remark: sts.enumStruct({ + remark: sts.bytes(), + }), + remark_with_event: sts.enumStruct({ + remark: sts.bytes(), + }), + set_code: sts.enumStruct({ + code: sts.bytes(), + }), + set_code_without_checks: sts.enumStruct({ + code: sts.bytes(), + }), + set_heap_pages: sts.enumStruct({ + pages: sts.bigint(), + }), + set_storage: sts.enumStruct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SystemCall = - | SystemCall_apply_authorized_upgrade - | SystemCall_authorize_upgrade - | SystemCall_authorize_upgrade_without_checks - | SystemCall_kill_prefix - | SystemCall_kill_storage - | SystemCall_remark - | SystemCall_remark_with_event - | SystemCall_set_code - | SystemCall_set_code_without_checks - | SystemCall_set_heap_pages - | SystemCall_set_storage +export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage /** * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * + * * If the authorization required a version check, this call will ensure the spec name * remains unchanged and that the spec version has increased. - * + * * Depending on the runtime's `OnSetCode` configuration, this function may directly apply * the new `code` in the same block or attempt to schedule the upgrade. - * + * * All origins are allowed. */ export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes + __kind: 'apply_authorized_upgrade' + code: Bytes } /** * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied * later. - * + * * This call requires Root origin. */ export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 + __kind: 'authorize_upgrade' + codeHash: H256 } /** * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied * later. - * + * * WARNING: This authorizes an upgrade that will take place without any safety checks, for * example that the spec name remains the same and that the version number increases. Not * recommended for normal use. Use `authorize_upgrade` instead. - * + * * This call requires Root origin. */ export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 + __kind: 'authorize_upgrade_without_checks' + codeHash: H256 } /** * Kill all storage items with a key that starts with the given prefix. - * + * * **NOTE:** We rely on the Root origin to provide us the number of subkeys under * the prefix we are removing to accurately calculate the weight of this function. */ export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number + __kind: 'kill_prefix' + prefix: Bytes + subkeys: number } /** * Kill some items from storage. */ export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] + __kind: 'kill_storage' + keys: Bytes[] } /** * Make some on-chain remark. - * + * * Can be executed by every `origin`. */ export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes + __kind: 'remark' + remark: Bytes } /** * Make some on-chain remark and emit event. */ export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes + __kind: 'remark_with_event' + remark: Bytes } /** * Set the new runtime code. */ export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes + __kind: 'set_code' + code: Bytes } /** * Set the new runtime code without doing any checks of the given `code`. - * + * * Note that runtime upgrades will not run if this is called with a not-increasing spec * version! */ export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes + __kind: 'set_code_without_checks' + code: Bytes } /** * Set the number of pages in the WebAssembly environment's heap. */ export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint + __kind: 'set_heap_pages' + pages: bigint } /** * Set some items of storage. */ export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] + __kind: 'set_storage' + items: [Bytes, Bytes][] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } + return { + remove_key: sts.unit(), + set_key: sts.enumStruct({ + new: MultiAddress, + }), + sudo: sts.enumStruct({ + call: Call, + }), + sudo_as: sts.enumStruct({ + who: MultiAddress, + call: Call, + }), + sudo_unchecked_weight: sts.enumStruct({ + call: Call, + weight: Weight, + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SudoCall = - | SudoCall_remove_key - | SudoCall_set_key - | SudoCall_sudo - | SudoCall_sudo_as - | SudoCall_sudo_unchecked_weight +export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight /** * Permanently removes the sudo key. - * + * * **This cannot be un-done.** */ export interface SudoCall_remove_key { - __kind: 'remove_key' + __kind: 'remove_key' } /** @@ -3605,103 +3393,103 @@ export interface SudoCall_remove_key { * key. */ export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress + __kind: 'set_key' + new: MultiAddress } /** * Authenticates the sudo key and dispatches a function call with `Root` origin. */ export interface SudoCall_sudo { - __kind: 'sudo' - call: Call + __kind: 'sudo' + call: Call } /** * Authenticates the sudo key and dispatches a function call with `Signed` origin from * a given account. - * + * * The dispatch origin for this call must be _Signed_. */ export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call + __kind: 'sudo_as' + who: MultiAddress + call: Call } /** * Authenticates the sudo key and dispatches a function call with `Root` origin. * This function does not check the weight of the call, and instead allows the * Sudo user to specify the weight of the call. - * + * * The dispatch origin for this call must be _Signed_. */ export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight + __kind: 'sudo_unchecked_weight' + call: Call + weight: Weight } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } + return { + enable_authoring_by_anyone: sts.unit(), + enable_rewards_at: sts.enumStruct({ + enableRewardsAt: EnableRewardsAt, + }), + enable_solution_range_adjustment: sts.enumStruct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }), + report_equivocation: sts.enumStruct({ + equivocationProof: EquivocationProof, + }), + store_segment_headers: sts.enumStruct({ + segmentHeaders: sts.array(() => SegmentHeader), + }), + vote: sts.enumStruct({ + signedVote: SignedVote, + }), + } }) export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Signature = sts.bytes() export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3709,13 +3497,13 @@ export const PosProof = sts.bytes() export const ChunkWitness = sts.bytes() export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export interface Scalar { - inner: Bytes + inner: Bytes } export const RecordWitness = sts.bytes() @@ -3727,16 +3515,16 @@ export const PieceOffset = sts.number() export const HistorySize = sts.bigint() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3756,160 +3544,146 @@ export const Slot = sts.bigint() export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type Slot = bigint export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export type Signature = Bytes export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) -export type DigestItem = - | DigestItem_Consensus - | DigestItem_Other - | DigestItem_PreRuntime - | DigestItem_RuntimeEnvironmentUpdated - | DigestItem_Seal +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = - | EnableRewardsAt_Height - | EnableRewardsAt_Manually - | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: number | undefined + __kind: 'Height' + value?: (number | undefined) } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type SubspaceCall = - | SubspaceCall_enable_authoring_by_anyone - | SubspaceCall_enable_rewards_at - | SubspaceCall_enable_solution_range_adjustment - | SubspaceCall_report_equivocation - | SubspaceCall_store_segment_headers - | SubspaceCall_vote +export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote /** * Enable storage access for all users. */ export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' + __kind: 'enable_authoring_by_anyone' } /** * Enable rewards for blocks and votes at specified block height. */ export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt + __kind: 'enable_rewards_at' + enableRewardsAt: EnableRewardsAt } /** @@ -3917,22 +3691,22 @@ export interface SubspaceCall_enable_rewards_at { * Note: No effect on the solution range for the current era */ export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: bigint | undefined - votingSolutionRangeOverride?: bigint | undefined + __kind: 'enable_solution_range_adjustment' + solutionRangeOverride?: (bigint | undefined) + votingSolutionRangeOverride?: (bigint | undefined) } /** * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. * If valid, the offence will be reported. - * + * * This extrinsic must be called unsigned and it is expected that only block authors will * call it (validated in `ValidateUnsigned`), as such if the block author is defined it * will be defined as the equivocation reporter. */ export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof + __kind: 'report_equivocation' + equivocationProof: EquivocationProof } /** @@ -3940,101 +3714,97 @@ export interface SubspaceCall_report_equivocation { * the Subspace consensus logic. */ export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] + __kind: 'store_segment_headers' + segmentHeaders: SegmentHeader[] } /** * Farmer vote, currently only used for extra rewards to farmers. */ export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote + __kind: 'vote' + signedVote: SignedVote } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } + return { + set_enable_balance_transfers: sts.enumStruct({ + enableBalanceTransfers: sts.boolean(), + }), + set_enable_domains: sts.enumStruct({ + enableDomains: sts.boolean(), + }), + set_enable_dynamic_cost_of_storage: sts.enumStruct({ + enableDynamicCostOfStorage: sts.boolean(), + }), + set_enable_non_root_calls: sts.enumStruct({ + enableNonRootCalls: sts.boolean(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type RuntimeConfigsCall = - | RuntimeConfigsCall_set_enable_balance_transfers - | RuntimeConfigsCall_set_enable_domains - | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage - | RuntimeConfigsCall_set_enable_non_root_calls +export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls /** * Enable or disable balance transfers for all users. */ export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean + __kind: 'set_enable_balance_transfers' + enableBalanceTransfers: boolean } /** * Change enable domains state. */ export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean + __kind: 'set_enable_domains' + enableDomains: boolean } /** * Enable or disable dynamic cost of storage. */ export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean + __kind: 'set_enable_dynamic_cost_of_storage' + enableDynamicCostOfStorage: boolean } /** * Enable or disable calls from non-root users. */ export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean + __kind: 'set_enable_non_root_calls' + enableNonRootCalls: boolean } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } + return { + update_issuance_params: sts.enumStruct({ + proposerSubsidyPoints: sts.array(() => RewardPoint), + voterSubsidyPoints: sts.array(() => RewardPoint), + }), + } }) export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } /** @@ -4046,94 +3816,87 @@ export type RewardsCall = RewardsCall_update_issuance_params * Update dynamic issuance parameters */ export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] + __kind: 'update_issuance_params' + proposerSubsidyPoints: RewardPoint[] + voterSubsidyPoints: RewardPoint[] } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } + return { + close_channel: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + initiate_channel: sts.enumStruct({ + dstChainId: ChainId, + params: InitiateChannelParams, + }), + initiate_domain_update_chain_allowlist: sts.enumStruct({ + domainId: DomainId, + update: ChainAllowlistUpdate, + }), + relay_message: sts.enumStruct({ + msg: CrossDomainMessage, + }), + relay_message_response: sts.enumStruct({ + msg: CrossDomainMessage, + }), + update_consensus_chain_allowlist: sts.enumStruct({ + update: ChainAllowlistUpdate, + }), + update_domain_allowlist: sts.enumStruct({ + updates: DomainAllowlistUpdates, + }), + } }) export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } + return { + allowChains: sts.array(() => ChainId), + removeChains: sts.array(() => ChainId), + } }) export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] + allowChains: ChainId[] + removeChains: ChainId[] } export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } + return { + Add: ChainId, + Remove: ChainId, + } }) export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId + __kind: 'Add' + value: ChainId } export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId + __kind: 'Remove' + value: ChainId } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type MessengerCall = - | MessengerCall_close_channel - | MessengerCall_initiate_channel - | MessengerCall_initiate_domain_update_chain_allowlist - | MessengerCall_relay_message - | MessengerCall_relay_message_response - | MessengerCall_update_consensus_chain_allowlist - | MessengerCall_update_domain_allowlist +export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist /** * An open channel is closed with a foreign chain. * Channel is set to Closed and do not accept or receive any messages. */ export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint + __kind: 'close_channel' + chainId: ChainId + channelId: bigint } /** @@ -4142,185 +3905,171 @@ export interface MessengerCall_close_channel { * Channel is set to initiated and do not accept or receive any messages. */ export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams + __kind: 'initiate_channel' + dstChainId: ChainId + params: InitiateChannelParams } /** * A call to initiate chain allowlist update on domains */ export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate + __kind: 'initiate_domain_update_chain_allowlist' + domainId: DomainId + update: ChainAllowlistUpdate } /** * Receives an Inbox message that needs to be validated and processed. */ export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage + __kind: 'relay_message' + msg: CrossDomainMessage } /** * Receives a response from the dst_chain for a message in Outbox. */ export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage + __kind: 'relay_message_response' + msg: CrossDomainMessage } /** * A call to update consensus chain allow list. */ export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate + __kind: 'update_consensus_chain_allowlist' + update: ChainAllowlistUpdate } /** * An inherent call to update allowlist for domain. */ export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates + __kind: 'update_domain_allowlist' + updates: DomainAllowlistUpdates } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - set_permissioned_action_allowed_by: sts.enumStruct({ - permissionedActionAllowedBy: PermissionedActionAllowedBy, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_nominator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } + return { + deregister_operator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + force_staking_epoch_transition: sts.enumStruct({ + domainId: DomainId, + }), + instantiate_domain: sts.enumStruct({ + domainConfig: DomainConfig, + }), + nominate_operator: sts.enumStruct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }), + register_domain_runtime: sts.enumStruct({ + runtimeName: sts.string(), + runtimeType: RuntimeType, + rawGenesisStorage: sts.bytes(), + }), + register_operator: sts.enumStruct({ + domainId: DomainId, + amount: sts.bigint(), + config: OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }), + set_permissioned_action_allowed_by: sts.enumStruct({ + permissionedActionAllowedBy: PermissionedActionAllowedBy, + }), + submit_bundle: sts.enumStruct({ + opaqueBundle: Bundle, + }), + submit_fraud_proof: sts.enumStruct({ + fraudProof: FraudProof, + }), + unlock_funds: sts.enumStruct({ + operatorId: sts.bigint(), + }), + unlock_nominator: sts.enumStruct({ + operatorId: sts.bigint(), + }), + update_domain_operator_allow_list: sts.enumStruct({ + domainId: DomainId, + operatorAllowList: OperatorAllowList, + }), + upgrade_domain_runtime: sts.enumStruct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }), + withdraw_stake: sts.enumStruct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type DomainsCall = - | DomainsCall_deregister_operator - | DomainsCall_force_staking_epoch_transition - | DomainsCall_instantiate_domain - | DomainsCall_nominate_operator - | DomainsCall_register_domain_runtime - | DomainsCall_register_operator - | DomainsCall_set_permissioned_action_allowed_by - | DomainsCall_submit_bundle - | DomainsCall_submit_fraud_proof - | DomainsCall_unlock_funds - | DomainsCall_unlock_nominator - | DomainsCall_update_domain_operator_allow_list - | DomainsCall_upgrade_domain_runtime - | DomainsCall_withdraw_stake +export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint + __kind: 'deregister_operator' + operatorId: bigint } /** * Force staking epoch transition for a given domain */ export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId + __kind: 'force_staking_epoch_transition' + domainId: DomainId } export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig + __kind: 'instantiate_domain' + domainConfig: DomainConfig } export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint + __kind: 'nominate_operator' + operatorId: bigint + amount: bigint } export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes + __kind: 'register_domain_runtime' + runtimeName: string + runtimeType: RuntimeType + rawGenesisStorage: Bytes } export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig - signingKeyProofOfOwnership: Bytes + __kind: 'register_operator' + domainId: DomainId + amount: bigint + config: OperatorConfig + signingKeyProofOfOwnership: Bytes } /** * Update permissioned action allowed by storage by Sudo. */ export interface DomainsCall_set_permissioned_action_allowed_by { - __kind: 'set_permissioned_action_allowed_by' - permissionedActionAllowedBy: PermissionedActionAllowedBy + __kind: 'set_permissioned_action_allowed_by' + permissionedActionAllowedBy: PermissionedActionAllowedBy } export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle + __kind: 'submit_bundle' + opaqueBundle: Bundle } export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof + __kind: 'submit_fraud_proof' + fraudProof: FraudProof } /** @@ -4329,8 +4078,8 @@ export interface DomainsCall_submit_fraud_proof { * should call this extrinsic to unlock each withdrawal */ export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint + __kind: 'unlock_funds' + operatorId: bigint } /** @@ -4338,8 +4087,8 @@ export interface DomainsCall_unlock_funds { * A nominator can initiate their unlock given operator is already deregistered. */ export interface DomainsCall_unlock_nominator { - __kind: 'unlock_nominator' - operatorId: bigint + __kind: 'unlock_nominator' + operatorId: bigint } /** @@ -4352,98 +4101,90 @@ export interface DomainsCall_unlock_nominator { * will continue to operate until they de-register themselves. */ export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList + __kind: 'update_domain_operator_allow_list' + domainId: DomainId + operatorAllowList: OperatorAllowList } export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes + __kind: 'upgrade_domain_runtime' + runtimeId: number + rawGenesisStorage: Bytes } export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint + __kind: 'withdraw_stake' + operatorId: bigint + shares: bigint } /** * Contains a variant per dispatchable extrinsic that this pallet has. */ export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_adjust_total_issuance: sts.enumStruct({ - direction: AdjustmentDirection, - delta: sts.bigint(), - }), - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } + return { + force_adjust_total_issuance: sts.enumStruct({ + direction: AdjustmentDirection, + delta: sts.bigint(), + }), + force_set_balance: sts.enumStruct({ + who: MultiAddress, + newFree: sts.bigint(), + }), + force_transfer: sts.enumStruct({ + source: MultiAddress, + dest: MultiAddress, + value: sts.bigint(), + }), + force_unreserve: sts.enumStruct({ + who: MultiAddress, + amount: sts.bigint(), + }), + transfer_all: sts.enumStruct({ + dest: MultiAddress, + keepAlive: sts.boolean(), + }), + transfer_allow_death: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + transfer_keep_alive: sts.enumStruct({ + dest: MultiAddress, + value: sts.bigint(), + }), + upgrade_accounts: sts.enumStruct({ + who: sts.array(() => AccountId32), + }), + } }) /** * Contains a variant per dispatchable extrinsic that this pallet has. */ -export type BalancesCall = - | BalancesCall_force_adjust_total_issuance - | BalancesCall_force_set_balance - | BalancesCall_force_transfer - | BalancesCall_force_unreserve - | BalancesCall_transfer_all - | BalancesCall_transfer_allow_death - | BalancesCall_transfer_keep_alive - | BalancesCall_upgrade_accounts +export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts /** * Adjust the total issuance in a saturating way. - * + * * Can only be called by root and always needs a positive `delta`. - * + * * # Example */ export interface BalancesCall_force_adjust_total_issuance { - __kind: 'force_adjust_total_issuance' - direction: AdjustmentDirection - delta: bigint + __kind: 'force_adjust_total_issuance' + direction: AdjustmentDirection + delta: bigint } /** * Set the regular balance of a given account. - * + * * The dispatch origin for this call is `root`. */ export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint + __kind: 'force_set_balance' + who: MultiAddress + newFree: bigint } /** @@ -4451,34 +4192,34 @@ export interface BalancesCall_force_set_balance { * may be specified. */ export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint + __kind: 'force_transfer' + source: MultiAddress + dest: MultiAddress + value: bigint } /** * Unreserve some balance from a user by force. - * + * * Can only be called by ROOT. */ export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint + __kind: 'force_unreserve' + who: MultiAddress + amount: bigint } /** * Transfer the entire transferable balance from the caller account. - * + * * NOTE: This function only attempts to transfer _transferable_ balances. This means that * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be * transferred by this function. To ensure that this function results in a killed account, * you might need to prepare the account by removing any reference counters, storage * deposits, etc... - * + * * The dispatch origin of this call must be Signed. - * + * * - `dest`: The recipient of the transfer. * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all * of the funds the account has, causing the sender account to be killed (false), or @@ -4486,156 +4227,144 @@ export interface BalancesCall_force_unreserve { * keep the sender account alive (true). */ export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean + __kind: 'transfer_all' + dest: MultiAddress + keepAlive: boolean } /** * Transfer some liquid free balance to another account. - * + * * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. * If the sender's account is below the existential deposit as a result * of the transfer, the account will be reaped. - * + * * The dispatch origin for this call must be `Signed` by the transactor. */ export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint + __kind: 'transfer_allow_death' + dest: MultiAddress + value: bigint } /** * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not * kill the origin account. - * + * * 99% of the time you want [`transfer_allow_death`] instead. - * + * * [`transfer_allow_death`]: struct.Pallet.html#method.transfer */ export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint + __kind: 'transfer_keep_alive' + dest: MultiAddress + value: bigint } /** * Upgrade a specified account. - * + * * - `origin`: Must be `Signed`. * - `who`: The account to be upgraded. - * + * * This will waive the transaction fee if at least all but 10% of the accounts needed to * be upgraded. (We let some not have to be upgraded just in order to allow for the * possibility of churn). */ export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] + __kind: 'upgrade_accounts' + who: AccountId32[] } export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' + __kind: 'Decrease' } export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export type Call = - | Call_Balances - | Call_Domains - | Call_Messenger - | Call_Rewards - | Call_RuntimeConfigs - | Call_Subspace - | Call_Sudo - | Call_System - | Call_Timestamp - | Call_Transporter - | Call_Utility - | Call_Vesting + __kind: 'Increase' +} + +export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall + __kind: 'Balances' + value: BalancesCall } export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall + __kind: 'Domains' + value: DomainsCall } export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall + __kind: 'Messenger' + value: MessengerCall } export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall + __kind: 'Rewards' + value: RewardsCall } export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall + __kind: 'RuntimeConfigs' + value: RuntimeConfigsCall } export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall + __kind: 'Subspace' + value: SubspaceCall } export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall + __kind: 'Sudo' + value: SudoCall } export interface Call_System { - __kind: 'System' - value: SystemCall + __kind: 'System' + value: SystemCall } export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall + __kind: 'Timestamp' + value: TimestampCall } export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall + __kind: 'Transporter' + value: TransporterCall } export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall + __kind: 'Utility' + value: UtilityCall } export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall + __kind: 'Vesting' + value: VestingCall } export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/consensus-squid/src/types/vesting/calls.ts b/indexers/consensus-squid/src/types/vesting/calls.ts index 858ebaa94..91b5a501a 100644 --- a/indexers/consensus-squid/src/types/vesting/calls.ts +++ b/indexers/consensus-squid/src/types/vesting/calls.ts @@ -1,51 +1,54 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const claim = { - name: 'Vesting.claim', - /** - * See [`Pallet::claim`]. - */ - v0: new CallType('Vesting.claim', sts.unit()), +export const claim = { + name: 'Vesting.claim', + /** + * See [`Pallet::claim`]. + */ + v0: new CallType( + 'Vesting.claim', + sts.unit() + ), } -export const vestedTransfer = { - name: 'Vesting.vested_transfer', - /** - * See [`Pallet::vested_transfer`]. - */ - v0: new CallType( - 'Vesting.vested_transfer', - sts.struct({ - dest: v0.MultiAddress, - schedule: v0.VestingSchedule, - }), - ), +export const vestedTransfer = { + name: 'Vesting.vested_transfer', + /** + * See [`Pallet::vested_transfer`]. + */ + v0: new CallType( + 'Vesting.vested_transfer', + sts.struct({ + dest: v0.MultiAddress, + schedule: v0.VestingSchedule, + }) + ), } -export const updateVestingSchedules = { - name: 'Vesting.update_vesting_schedules', - /** - * See [`Pallet::update_vesting_schedules`]. - */ - v0: new CallType( - 'Vesting.update_vesting_schedules', - sts.struct({ - who: v0.MultiAddress, - vestingSchedules: sts.array(() => v0.VestingSchedule), - }), - ), +export const updateVestingSchedules = { + name: 'Vesting.update_vesting_schedules', + /** + * See [`Pallet::update_vesting_schedules`]. + */ + v0: new CallType( + 'Vesting.update_vesting_schedules', + sts.struct({ + who: v0.MultiAddress, + vestingSchedules: sts.array(() => v0.VestingSchedule), + }) + ), } -export const claimFor = { - name: 'Vesting.claim_for', - /** - * See [`Pallet::claim_for`]. - */ - v0: new CallType( - 'Vesting.claim_for', - sts.struct({ - dest: v0.MultiAddress, - }), - ), +export const claimFor = { + name: 'Vesting.claim_for', + /** + * See [`Pallet::claim_for`]. + */ + v0: new CallType( + 'Vesting.claim_for', + sts.struct({ + dest: v0.MultiAddress, + }) + ), } diff --git a/indexers/consensus-squid/src/types/vesting/constants.ts b/indexers/consensus-squid/src/types/vesting/constants.ts index 1db7a6c2d..4c7cbb2b9 100644 --- a/indexers/consensus-squid/src/types/vesting/constants.ts +++ b/indexers/consensus-squid/src/types/vesting/constants.ts @@ -1,8 +1,11 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const minVestedTransfer = { - /** - * The minimum amount transferred to call `vested_transfer`. - */ - v0: new ConstantType('Vesting.MinVestedTransfer', sts.bigint()), +export const minVestedTransfer = { + /** + * The minimum amount transferred to call `vested_transfer`. + */ + v0: new ConstantType( + 'Vesting.MinVestedTransfer', + sts.bigint() + ), } diff --git a/indexers/consensus-squid/src/types/vesting/events.ts b/indexers/consensus-squid/src/types/vesting/events.ts index 230aa2bd3..02d40ad04 100644 --- a/indexers/consensus-squid/src/types/vesting/events.ts +++ b/indexers/consensus-squid/src/types/vesting/events.ts @@ -1,44 +1,44 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const vestingScheduleAdded = { - name: 'Vesting.VestingScheduleAdded', - /** - * Added new vesting schedule. - */ - v0: new EventType( - 'Vesting.VestingScheduleAdded', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - vestingSchedule: v0.VestingSchedule, - }), - ), +export const vestingScheduleAdded = { + name: 'Vesting.VestingScheduleAdded', + /** + * Added new vesting schedule. + */ + v0: new EventType( + 'Vesting.VestingScheduleAdded', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + vestingSchedule: v0.VestingSchedule, + }) + ), } -export const claimed = { - name: 'Vesting.Claimed', - /** - * Claimed vesting. - */ - v0: new EventType( - 'Vesting.Claimed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const claimed = { + name: 'Vesting.Claimed', + /** + * Claimed vesting. + */ + v0: new EventType( + 'Vesting.Claimed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const vestingSchedulesUpdated = { - name: 'Vesting.VestingSchedulesUpdated', - /** - * Updated vesting schedules. - */ - v0: new EventType( - 'Vesting.VestingSchedulesUpdated', - sts.struct({ - who: v0.AccountId32, - }), - ), +export const vestingSchedulesUpdated = { + name: 'Vesting.VestingSchedulesUpdated', + /** + * Updated vesting schedules. + */ + v0: new EventType( + 'Vesting.VestingSchedulesUpdated', + sts.struct({ + who: v0.AccountId32, + }) + ), } diff --git a/indexers/consensus-squid/src/types/vesting/storage.ts b/indexers/consensus-squid/src/types/vesting/storage.ts index 44755a8ae..847b2f926 100644 --- a/indexers/consensus-squid/src/types/vesting/storage.ts +++ b/indexers/consensus-squid/src/types/vesting/storage.ts @@ -1,46 +1,31 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const vestingSchedules = { - /** - * Vesting schedules of an account. - * - * VestingSchedules: map AccountId => Vec - */ - v0: new StorageType( - 'Vesting.VestingSchedules', - 'Default', - [v0.AccountId32], - sts.array(() => v0.VestingSchedule), - ) as VestingSchedulesV0, +export const vestingSchedules = { + /** + * Vesting schedules of an account. + * + * VestingSchedules: map AccountId => Vec + */ + v0: new StorageType('Vesting.VestingSchedules', 'Default', [v0.AccountId32], sts.array(() => v0.VestingSchedule)) as VestingSchedulesV0, } /** * Vesting schedules of an account. - * + * * VestingSchedules: map AccountId => Vec */ -export interface VestingSchedulesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.VestingSchedule[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.VestingSchedule[] | undefined][]> +export interface VestingSchedulesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.VestingSchedule[] + get(block: Block, key: v0.AccountId32): Promise<(v0.VestingSchedule[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> } diff --git a/indexers/leaderboard-squid/db/migrations/1724203054403-Data.js b/indexers/leaderboard-squid/db/migrations/1724205335447-Data.js similarity index 99% rename from indexers/leaderboard-squid/db/migrations/1724203054403-Data.js rename to indexers/leaderboard-squid/db/migrations/1724205335447-Data.js index 1937bea86..2fa2d0f9c 100644 --- a/indexers/leaderboard-squid/db/migrations/1724203054403-Data.js +++ b/indexers/leaderboard-squid/db/migrations/1724205335447-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724203054403 { - name = 'Data1724203054403' +module.exports = class Data1724205335447 { + name = 'Data1724205335447' async up(db) { await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) diff --git a/indexers/leaderboard-squid/src/types/balances/calls.ts b/indexers/leaderboard-squid/src/types/balances/calls.ts index 609cb43de..03fbec1ea 100644 --- a/indexers/leaderboard-squid/src/types/balances/calls.ts +++ b/indexers/leaderboard-squid/src/types/balances/calls.ts @@ -1,119 +1,119 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v5 from '../v5' -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }), - ), +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), } -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }), - ), +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }) + ), } -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }), - ), +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }) + ), } -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }), - ), +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }) + ), } -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }), - ), +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }) + ), } -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }), - ), +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/balances/constants.ts b/indexers/leaderboard-squid/src/types/balances/constants.ts index aac0c6f9e..5cab2c7e3 100644 --- a/indexers/leaderboard-squid/src/types/balances/constants.ts +++ b/indexers/leaderboard-squid/src/types/balances/constants.ts @@ -1,44 +1,59 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType('Balances.ExistentialDeposit', sts.bigint()), +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType( + 'Balances.ExistentialDeposit', + sts.bigint() + ), } -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType('Balances.MaxLocks', sts.number()), +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType( + 'Balances.MaxLocks', + sts.number() + ), } -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType('Balances.MaxReserves', sts.number()), +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType( + 'Balances.MaxReserves', + sts.number() + ), } -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType('Balances.MaxHolds', sts.number()), +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxHolds', + sts.number() + ), } -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType('Balances.MaxFreezes', sts.number()), +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxFreezes', + sts.number() + ), } diff --git a/indexers/leaderboard-squid/src/types/balances/events.ts b/indexers/leaderboard-squid/src/types/balances/events.ts index e03356954..fda7f6e59 100644 --- a/indexers/leaderboard-squid/src/types/balances/events.ts +++ b/indexers/leaderboard-squid/src/types/balances/events.ts @@ -1,312 +1,312 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }), - ), +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }) + ), } -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }), - ), +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }) + ), } -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }), - ), +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }) + ), } -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }), - ), +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }) + ), } -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }), - ), +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }) + ), } -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }), - ), +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }) + ), } -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }), - ), +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/balances/storage.ts b/indexers/leaderboard-squid/src/types/balances/storage.ts index bc3249096..5f4a19212 100644 --- a/indexers/leaderboard-squid/src/types/balances/storage.ts +++ b/indexers/leaderboard-squid/src/types/balances/storage.ts @@ -1,358 +1,253 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, } /** * The total units issued in the system. */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType( - 'Balances.InactiveIssuance', - 'Default', - [], - sts.bigint(), - ) as InactiveIssuanceV0, +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, } /** * The total units of outstanding deactivated balance in the system. */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, } /** * The Balances pallet example of storing the balance of an account. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> * } * ``` - * + * * You can also store the balance of an account in the `System` pallet. - * + * * # Example - * + * * ```nocompile * impl pallet_balances::Config for Runtime { * type AccountStore = System * } * ``` - * + * * But this comes with tradeoffs, storing account balances in the system pallet stores * `frame_system` data alongside the account data contrary to storing account balances in the * `Balances` pallet, which uses a `StorageMap` to store balances data only. * NOTE: This is only used in the case that this pallet is used to store balances. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountData | undefined][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType( - 'Balances.Locks', - 'Default', - [v0.AccountId32], - sts.array(() => v0.BalanceLock), - ) as LocksV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, } /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.BalanceLock[] | undefined][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType( - 'Balances.Reserves', - 'Default', - [v0.AccountId32], - sts.array(() => v0.ReserveData), - ) as ReservesV0, +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, } /** * Named reserves on some account balances. */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.ReserveData[] | undefined][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType( - 'Balances.Holds', - 'Default', - [v0.AccountId32], - sts.array(() => v0.IdAmount), - ) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType( - 'Balances.Holds', - 'Default', - [v1.AccountId32], - sts.array(() => v1.IdAmount), - ) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType( - 'Balances.Holds', - 'Default', - [v3.AccountId32], - sts.array(() => v3.IdAmount), - ) as HoldsV3, +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, } /** * Holds on account balances. */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.IdAmount[] | undefined][]> +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> } /** * Holds on account balances. */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v1.AccountId32, - ): Promise<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.AccountId32, - ): AsyncIterable<[k: v1.AccountId32, v: v1.IdAmount[] | undefined][]> +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> } /** * Holds on account balances. */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairs( - block: Block, - key: v3.AccountId32, - ): Promise<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v3.AccountId32, - ): AsyncIterable<[k: v3.AccountId32, v: v3.IdAmount[] | undefined][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType( - 'Balances.Freezes', - 'Default', - [v0.AccountId32], - sts.array(() => v0.Type_152), - ) as FreezesV0, +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, } /** * Freeze locks on account balances. */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.Type_152[] | undefined][]> +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> } diff --git a/indexers/leaderboard-squid/src/types/domains/calls.ts b/indexers/leaderboard-squid/src/types/domains/calls.ts index 803c3241f..3ecf1398b 100644 --- a/indexers/leaderboard-squid/src/types/domains/calls.ts +++ b/indexers/leaderboard-squid/src/types/domains/calls.ts @@ -1,278 +1,278 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }), - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }), - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }), - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }) + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }) + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }) + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }), - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }), - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }), - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }) + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }) + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }) + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }) + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }), - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }) + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }) + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }) + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }), - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }), - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }) + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }) + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }), - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }) + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }) + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }), - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }) + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }), - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }) + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }), - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/domains/constants.ts b/indexers/leaderboard-squid/src/types/domains/constants.ts index aca0daa1d..a26b47666 100644 --- a/indexers/leaderboard-squid/src/types/domains/constants.ts +++ b/indexers/leaderboard-squid/src/types/domains/constants.ts @@ -1,153 +1,213 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType('Domains.MaxNominators', sts.number()), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType('Domains.SudoId', v0.AccountId32), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType('Domains.PalletId', v1.PalletId), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]), - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType('Domains.BundleLongevity', sts.number()), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType( + 'Domains.ConfirmationDepthK', + sts.number() + ), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType( + 'Domains.DomainRuntimeUpgradeDelay', + sts.number() + ), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType( + 'Domains.BlockTreePruningDepth', + sts.number() + ), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockSize', + sts.number() + ), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockWeight', + v0.Weight + ), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxBundlesPerBlock', + sts.number() + ), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainNameLength', + sts.number() + ), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType( + 'Domains.DomainInstantiationDeposit', + sts.bigint() + ), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType( + 'Domains.InitialDomainTxRange', + sts.bigint() + ), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType( + 'Domains.DomainTxRangeAdjustmentInterval', + sts.bigint() + ), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType( + 'Domains.MinOperatorStake', + sts.bigint() + ), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType( + 'Domains.MinNominatorStake', + sts.bigint() + ), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType( + 'Domains.StakeWithdrawalLockingPeriod', + sts.number() + ), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType( + 'Domains.StakeEpochDuration', + sts.number() + ), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType( + 'Domains.TreasuryAccount', + v0.AccountId32 + ), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType( + 'Domains.MaxPendingStakingOperation', + sts.number() + ), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType( + 'Domains.MaxNominators', + sts.number() + ), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType( + 'Domains.SudoId', + v0.AccountId32 + ), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType( + 'Domains.PalletId', + v1.PalletId + ), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType( + 'Domains.BundleLongevity', + sts.number() + ), } diff --git a/indexers/leaderboard-squid/src/types/domains/events.ts b/indexers/leaderboard-squid/src/types/domains/events.ts index f10bdb7c7..d6551e7d0 100644 --- a/indexers/leaderboard-squid/src/types/domains/events.ts +++ b/indexers/leaderboard-squid/src/types/domains/events.ts @@ -1,250 +1,250 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }), - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }), - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }), - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }), - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }), - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }), - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }), - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }), - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }), - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }), - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }), - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }), - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }), - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }), - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }) + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }) + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }) + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }) + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }) + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }) + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }) + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }) + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }) + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }) + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }) + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/domains/storage.ts b/indexers/leaderboard-squid/src/types/domains/storage.ts index c586dbd04..495ae0e03 100644 --- a/indexers/leaderboard-squid/src/types/domains/storage.ts +++ b/indexers/leaderboard-squid/src/types/domains/storage.ts @@ -1,773 +1,452 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulBundles', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulFraudProofs', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const runtimeRegistry = { - v0: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v0.RuntimeObject, - ) as RuntimeRegistryV0, - v5: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v5.RuntimeObject, - ) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType( - 'Domains.ScheduledRuntimeUpgrades', - 'Optional', - [sts.number(), sts.number()], - v0.ScheduledRuntimeUpgrade, - ) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise - getMany( - block: Block, - keys: [number, number][], - ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[number, number][]> - getPairs( - block: Block, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - key2: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const operatorIdOwner = { - v0: new StorageType( - 'Domains.OperatorIdOwner', - 'Optional', - [sts.bigint()], - v0.AccountId32, - ) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType( - 'Domains.OperatorSigningKey', - 'Optional', - [sts.bytes()], - sts.bigint(), - ) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const runtimeRegistry = { + v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, + v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> + getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> + getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const operatorIdOwner = { + v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: Bytes, - ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> -} - -export const domainStakingSummary = { - v0: new StorageType( - 'Domains.DomainStakingSummary', - 'Optional', - [v0.DomainId], - v0.StakingSummary, - ) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise<(bigint | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> +} + +export const domainStakingSummary = { + v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType( - 'Domains.PendingOperatorSwitches', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType( - 'Domains.OperatorEpochSharePrice', - 'Optional', - [sts.bigint(), v0.DomainEpoch], - v0.SharePrice, - ) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Deposit, - ) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Deposit, - ) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Withdrawal, - ) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Withdrawal, - ) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType( - 'Domains.NominatorCount', - 'Default', - [sts.bigint()], - sts.number(), - ) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, } /** @@ -778,37 +457,28 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: number | undefined][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType( - 'Domains.PendingSlashes', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise<(number | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, } /** @@ -816,537 +486,341 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType( - 'Domains.PendingStakingOperationCount', - 'Default', - [v0.DomainId], - sts.number(), - ) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v0.DomainId], - v0.DomainObject, - ) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v1.DomainId], - v1.DomainObject, - ) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v5.DomainId], - v5.DomainObject, - ) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise<(v0.DomainId | undefined)> +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairs( - block: Block, - key: v5.DomainId, - ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.DomainId, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType( - 'Domains.BlockTree', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v0.H256], - v0.BlockTreeNode, - ) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v1.H256], - v1.BlockTreeNode, - ) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v5.H256], - v5.BlockTreeNode, - ) as BlockTreeNodesV5, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.H256, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.H256, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType( - 'Domains.HeadReceiptNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadReceiptNumberV0, +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType( - 'Domains.LatestConfirmedDomainBlockNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType( - 'Domains.HeadReceiptExtended', - 'Default', - [v0.DomainId], - sts.boolean(), - ) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType( - 'Domains.StateRoots', - 'Optional', - [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], - v0.H256, - ) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType( - 'Domains.ConsensusBlockHash', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, } /** @@ -1354,277 +828,114 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v0.DomainId, sts.number(), sts.number()], - sts.array(() => v0.BundleDigest), - ) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v1.DomainId, sts.number(), sts.number()], - sts.array(() => v1.BundleDigest), - ) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v0.DomainId, number, number][], - ): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v1.DomainId, number, number][], - ): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType( - 'Domains.InboxedBundleAuthor', - 'Optional', - [v0.H256], - sts.bigint(), - ) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, } /** @@ -1632,40 +943,28 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType( - 'Domains.HeadDomainNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, } /** @@ -1674,42 +973,30 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType( - 'Domains.LastEpochStakingDistribution', - 'Optional', - [v0.DomainId], - v0.ElectionVerificationParams, - ) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, } /** @@ -1719,336 +1006,221 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> -} - -export const domainTxRangeState = { - v0: new StorageType( - 'Domains.DomainTxRangeState', - 'Optional', - [v0.DomainId], - v0.TxRangeState, - ) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType( - 'Domains.LatestConfirmedDomainBlock', - 'Optional', - [v1.DomainId], - v1.ConfirmedDomainBlock, - ) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> +} + +export const domainTxRangeState = { + v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType( - 'Domains.LatestSubmittedER', - 'Default', - [sts.tuple(() => [v3.DomainId, sts.bigint()])], - sts.number(), - ) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairs( - block: Block, - key: [v3.DomainId, bigint], - ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType( - 'Domains.OperatorHighestSlot', - 'Default', - [sts.bigint()], - sts.bigint(), - ) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint | undefined][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType( - 'Domains.OperatorBundleSlot', - 'Default', - [sts.bigint()], - sts.array(() => sts.bigint()), - ) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise<(bigint | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType( - 'Domains.PermissionedActionAllowedBy', - 'Optional', - [], - v5.PermissionedActionAllowedBy, - ) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType( - 'Domains.AccumulatedTreasuryFunds', - 'Default', - [], - sts.bigint(), - ) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgradeRecords', - 'Default', - [sts.number()], - sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), - ) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> - getMany( - block: Block, - keys: number[], - ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs( - block: Block, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairs( - block: Block, - key: number, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgrades', - 'Default', - [], - sts.array(() => sts.number()), - ) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> + getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise<(number[] | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/rewards/calls.ts b/indexers/leaderboard-squid/src/types/rewards/calls.ts index 1608b0cbe..b8486afff 100644 --- a/indexers/leaderboard-squid/src/types/rewards/calls.ts +++ b/indexers/leaderboard-squid/src/types/rewards/calls.ts @@ -1,16 +1,16 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v3 from '../v3' -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }), - ), +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/constants.ts b/indexers/leaderboard-squid/src/types/rewards/constants.ts index 960b446d6..e1004ecc1 100644 --- a/indexers/leaderboard-squid/src/types/rewards/constants.ts +++ b/indexers/leaderboard-squid/src/types/rewards/constants.ts @@ -1,46 +1,61 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType('Rewards.BlockReward', sts.bigint()), +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType( + 'Rewards.BlockReward', + sts.bigint() + ), } -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType('Rewards.VoteReward', sts.bigint()), +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType( + 'Rewards.VoteReward', + sts.bigint() + ), } -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType('Rewards.AvgBlockspaceUsageNumBlocks', sts.number()), +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType( + 'Rewards.AvgBlockspaceUsageNumBlocks', + sts.number() + ), } -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType('Rewards.TransactionByteFee', sts.bigint()), +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType( + 'Rewards.TransactionByteFee', + sts.bigint() + ), } -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType('Rewards.MaxRewardPoints', sts.number()), +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType( + 'Rewards.MaxRewardPoints', + sts.number() + ), } -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]), - ), +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]) + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/events.ts b/indexers/leaderboard-squid/src/types/rewards/events.ts index ce993f9b9..5b01a1694 100644 --- a/indexers/leaderboard-squid/src/types/rewards/events.ts +++ b/indexers/leaderboard-squid/src/types/rewards/events.ts @@ -1,30 +1,30 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }), - ), +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }) + ), } -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }), - ), +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/rewards/storage.ts b/indexers/leaderboard-squid/src/types/rewards/storage.ts index 300403260..971093421 100644 --- a/indexers/leaderboard-squid/src/types/rewards/storage.ts +++ b/indexers/leaderboard-squid/src/types/rewards/storage.ts @@ -1,102 +1,82 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v3 from '../v3' -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType( - 'Rewards.AvgBlockspaceUsage', - 'Default', - [], - sts.number(), - ) as AvgBlockspaceUsageV3, +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, } /** * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, } /** * Whether rewards are enabled */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType( - 'Rewards.RemainingIssuance', - 'Default', - [], - sts.bigint(), - ) as RemainingIssuanceV3, +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, } /** * Tokens left to issue to farmers at any given time */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType( - 'Rewards.ProposerSubsidyPoints', - 'Default', - [], - sts.array(() => v3.RewardPoint), - ) as ProposerSubsidyPointsV3, +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, } /** * Block proposer subsidy parameters */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> } -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType( - 'Rewards.VoterSubsidyPoints', - 'Default', - [], - sts.array(() => v3.RewardPoint), - ) as VoterSubsidyPointsV3, +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, } /** * Voter subsidy parameters */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/subspace/calls.ts b/indexers/leaderboard-squid/src/types/subspace/calls.ts index 02324c4fa..add70afae 100644 --- a/indexers/leaderboard-squid/src/types/subspace/calls.ts +++ b/indexers/leaderboard-squid/src/types/subspace/calls.ts @@ -1,76 +1,79 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }), - ), +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }) + ), } -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }), - ), +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }) + ), } -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - ), +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }) + ), } -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }), - ), +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }) + ), } -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }), - ), +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }) + ), } -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType('Subspace.enable_authoring_by_anyone', sts.unit()), +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType( + 'Subspace.enable_authoring_by_anyone', + sts.unit() + ), } diff --git a/indexers/leaderboard-squid/src/types/subspace/constants.ts b/indexers/leaderboard-squid/src/types/subspace/constants.ts index e90f6126b..555317b21 100644 --- a/indexers/leaderboard-squid/src/types/subspace/constants.ts +++ b/indexers/leaderboard-squid/src/types/subspace/constants.ts @@ -1,118 +1,154 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType('Subspace.BlockAuthoringDelay', v0.Slot), +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType( + 'Subspace.BlockAuthoringDelay', + v0.Slot + ), } -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionInterval', sts.number()), +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionInterval', + sts.number() + ), } -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionLookbackDepth', sts.number()), +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionLookbackDepth', + sts.number() + ), } -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType('Subspace.PotEntropyInjectionDelay', v0.Slot), +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionDelay', + v0.Slot + ), } -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType('Subspace.EraDuration', sts.number()), +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType( + 'Subspace.EraDuration', + sts.number() + ), } -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType('Subspace.InitialSolutionRange', sts.bigint()), +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType( + 'Subspace.InitialSolutionRange', + sts.bigint() + ), } -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]), - ), +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), } -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType('Subspace.ConfirmationDepthK', sts.number()), +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType( + 'Subspace.ConfirmationDepthK', + sts.number() + ), } -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType('Subspace.RecentSegments', v0.HistorySize), +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType( + 'Subspace.RecentSegments', + v0.HistorySize + ), } -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]), - ), +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]) + ), } -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType('Subspace.MinSectorLifetime', v0.HistorySize), +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType( + 'Subspace.MinSectorLifetime', + v0.HistorySize + ), } -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType('Subspace.ExpectedVotesPerBlock', sts.number()), +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType( + 'Subspace.ExpectedVotesPerBlock', + sts.number() + ), } -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType('Subspace.MaxPiecesInSector', sts.number()), +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType( + 'Subspace.MaxPiecesInSector', + sts.number() + ), } -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType('Subspace.BlockSlotCount', sts.number()), +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType( + 'Subspace.BlockSlotCount', + sts.number() + ), } diff --git a/indexers/leaderboard-squid/src/types/subspace/events.ts b/indexers/leaderboard-squid/src/types/subspace/events.ts index 08d785a58..65427a471 100644 --- a/indexers/leaderboard-squid/src/types/subspace/events.ts +++ b/indexers/leaderboard-squid/src/types/subspace/events.ts @@ -1,31 +1,31 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }), - ), +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }) + ), } -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }), - ), +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/subspace/storage.ts b/indexers/leaderboard-squid/src/types/subspace/storage.ts index eb4811562..8c1220cc5 100644 --- a/indexers/leaderboard-squid/src/types/subspace/storage.ts +++ b/indexers/leaderboard-squid/src/types/subspace/storage.ts @@ -1,525 +1,390 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v3 from '../v3' -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, } /** * The slot at which the first block was created. This is 0 until the first block of the chain. */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> } -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, } /** * Current slot number. */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> } -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType( - 'Subspace.PotSlotIterations', - 'Optional', - [], - v0.NonZeroU32, - ) as PotSlotIterationsV0, +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, } /** * Number of iterations for proof of time per slot */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.NonZeroU32 | undefined)> } -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType( - 'Subspace.SolutionRanges', - 'Default', - [], - v0.SolutionRanges, - ) as SolutionRangesV0, +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, } /** * Solution ranges used for challenges. */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise<(v0.SolutionRanges | undefined)> } -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType( - 'Subspace.ShouldAdjustSolutionRange', - 'Default', - [], - sts.boolean(), - ) as ShouldAdjustSolutionRangeV0, +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, } /** * Storage to check if the solution range is to be adjusted for next era */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType( - 'Subspace.NextSolutionRangeOverride', - 'Optional', - [], - v0.SolutionRangeOverride, - ) as NextSolutionRangeOverrideV0, +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, } /** * Override solution range during next update */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> } -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, } /** * Slot at which current era started. */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Slot | undefined)> } -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, } /** * A set of blocked farmers keyed by their public key. */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: null | undefined][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: null | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.Public, v: null | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.Public, - ): AsyncIterable<[k: v0.Public, v: null | undefined][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType( - 'Subspace.SegmentCommitment', - 'Optional', - [v0.SegmentIndex], - v0.SegmentCommitment, - ) as SegmentCommitmentV0, +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise<(null | undefined)> + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, } /** * Mapping from segment index to corresponding segment commitment of contained records. */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged( - pageSize: number, - block: Block, - key: v0.SegmentIndex, - ): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairs( - block: Block, - key: v0.SegmentIndex, - ): Promise<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.SegmentIndex, - ): AsyncIterable<[k: v0.SegmentIndex, v: v0.SegmentCommitment | undefined][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType( - 'Subspace.CounterForSegmentCommitment', - 'Default', - [], - sts.number(), - ) as CounterForSegmentCommitmentV0, +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, } /** * Counter for the related counted storage map */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType( - 'Subspace.DidProcessSegmentHeaders', - 'Default', - [], - sts.boolean(), - ) as DidProcessSegmentHeadersV0, +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, } /** * Whether the segment headers inherent has been processed in this block (temporary value). - * + * * This value is updated to `true` when processing `store_segment_headers` by a node. * It is then cleared at the end of each block execution in the `on_finalize` hook. */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType( - 'Subspace.ParentVoteVerificationData', - 'Optional', - [], - v0.VoteVerificationData, - ) as ParentVoteVerificationDataV0, +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, } /** * Storage of previous vote verification data, updated on each block during finalization. */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.VoteVerificationData | undefined)> } -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType( - 'Subspace.ParentBlockAuthorInfo', - 'Optional', - [], - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - ) as ParentBlockAuthorInfoV0, +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, } /** * Parent block author information. */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined> +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> } -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, } /** * Enable rewards since specified block number. */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType( - 'Subspace.EnableRewardsBelowSolutionRange', - 'Optional', - [], - sts.bigint(), - ) as EnableRewardsBelowSolutionRangeV0, +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, } /** * Enable rewards when solution range is below this threshold. */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(bigint | undefined)> } -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType( - 'Subspace.CurrentBlockAuthorInfo', - 'Optional', - [], - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32]), - ) as CurrentBlockAuthorInfoV0, +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, } /** * Temporary value (cleared at block finalization) with block author information. */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get( - block: Block, - ): Promise<[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType( - 'Subspace.ParentBlockVoters', - 'Default', - [], - sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - sts.tuple(() => [v0.AccountId32, v0.Signature]), - ]), - ), - ) as ParentBlockVotersV0, +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, } /** * Voters in the parent block (set at the end of the block with current values). */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault( - block: Block, - ): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get( - block: Block, - ): Promise< - | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - | undefined - > -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType( - 'Subspace.CurrentBlockVoters', - 'Optional', - [], - sts.array(() => - sts.tuple(() => [ - sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), - sts.tuple(() => [v0.AccountId32, v0.Signature]), - ]), - ), - ) as CurrentBlockVotersV0, +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, } /** * Temporary value (cleared at block finalization) with voters in the current block thus far. */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get( - block: Block, - ): Promise< - | [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - | undefined - > -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType( - 'Subspace.PotEntropy', - 'Default', - [], - sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue])), - ) as PotEntropyV0, +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, } /** * Entropy that needs to be injected into proof of time chain at specific slot associated with * block number it came from. */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<[number, v0.PotEntropyValue][] | undefined> +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> } -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType( - 'Subspace.BlockRandomness', - 'Optional', - [], - v0.Randomness, - ) as BlockRandomnessV0, +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, } /** * The current block randomness, updated at block initialization. When the proof of time feature * is enabled it derived from PoT otherwise PoR. */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Randomness | undefined)> } -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType( - 'Subspace.AllowAuthoringByAnyone', - 'Default', - [], - sts.boolean(), - ) as AllowAuthoringByAnyoneV0, +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, } /** * Allow block authoring by anyone or just root. */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType( - 'Subspace.RootPlotPublicKey', - 'Optional', - [], - v0.Public, - ) as RootPlotPublicKeyV0, +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, } /** * Root plot public key. - * + * * Set just once to make sure no one else can author blocks until allowed for anyone. */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Public | undefined)> } -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType( - 'Subspace.BlockSlots', - 'Default', - [], - sts.array(() => sts.tuple(() => [sts.number(), v3.Slot])), - ) as BlockSlotsV3, +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, } /** * Bounded mapping from block number to slot */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<[number, v3.Slot][] | undefined> +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<([number, v3.Slot][] | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/support.ts b/indexers/leaderboard-squid/src/types/support.ts index 53e364bb5..456dfc2fb 100644 --- a/indexers/leaderboard-squid/src/types/support.ts +++ b/indexers/leaderboard-squid/src/types/support.ts @@ -1,146 +1,142 @@ -import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' +import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' +import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' -export { sts, Bytes, BitSequence, Option, Result } + +export {sts, Bytes, BitSequence, Option, Result} + export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } + export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } + interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + export class EventType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } + export class CallType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } + export class ConstantType { - constructor( - private name: QualifiedName, - private type: T, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor(private name: QualifiedName, private type: T) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } + export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged( - pageSize: number, - block: Block, - ...args: any[] - ): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/leaderboard-squid/src/types/system/calls.ts b/indexers/leaderboard-squid/src/types/system/calls.ts index 7aab74fd6..24f23464e 100644 --- a/indexers/leaderboard-squid/src/types/system/calls.ts +++ b/indexers/leaderboard-squid/src/types/system/calls.ts @@ -1,146 +1,146 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }), - ), +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }) + ), } -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }), - ), +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }) + ), } -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }), - ), +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }) + ), } -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }), - ), +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }) + ), } -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - ), +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }) + ), } -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }), - ), +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }) + ), } -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - ), +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }) + ), } -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }), - ), +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }) + ), } -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }), - ), +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }) + ), } -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }), - ), +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }) + ), } -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }), - ), +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/system/constants.ts b/indexers/leaderboard-squid/src/types/system/constants.ts index 638f33f60..653ab1df2 100644 --- a/indexers/leaderboard-squid/src/types/system/constants.ts +++ b/indexers/leaderboard-squid/src/types/system/constants.ts @@ -1,48 +1,66 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType('System.BlockWeights', v0.BlockWeights), +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType( + 'System.BlockWeights', + v0.BlockWeights + ), } -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType('System.BlockLength', v0.BlockLength), +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType( + 'System.BlockLength', + v0.BlockLength + ), } -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType('System.BlockHashCount', sts.number()), +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType( + 'System.BlockHashCount', + sts.number() + ), } -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType('System.DbWeight', v0.RuntimeDbWeight), +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType( + 'System.DbWeight', + v0.RuntimeDbWeight + ), } -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType('System.Version', v0.RuntimeVersion), +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType( + 'System.Version', + v0.RuntimeVersion + ), } -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType('System.SS58Prefix', sts.number()), +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType( + 'System.SS58Prefix', + sts.number() + ), } diff --git a/indexers/leaderboard-squid/src/types/system/events.ts b/indexers/leaderboard-squid/src/types/system/events.ts index e5a14e4aa..2c8c5731b 100644 --- a/indexers/leaderboard-squid/src/types/system/events.ts +++ b/indexers/leaderboard-squid/src/types/system/events.ts @@ -1,91 +1,94 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }), - ), +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }) + ), } -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }), - ), +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }) + ), } -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType('System.CodeUpdated', sts.unit()), +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType( + 'System.CodeUpdated', + sts.unit() + ), } -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }), - ), +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), } -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }), - ), +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), } -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }), - ), +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }) + ), } -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }), - ), +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/system/storage.ts b/indexers/leaderboard-squid/src/types/system/storage.ts index c2df3d971..9f776b387 100644 --- a/indexers/leaderboard-squid/src/types/system/storage.ts +++ b/indexers/leaderboard-squid/src/types/system/storage.ts @@ -1,488 +1,405 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, } /** * The full account information for a particular account ID. */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairs( - block: Block, - key: v0.AccountId32, - ): Promise<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.AccountId32, - ): AsyncIterable<[k: v0.AccountId32, v: v0.AccountInfo | undefined][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, } /** * Total extrinsics count for the current block. */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, } /** * The current weight for the block. */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise<(v0.PerDispatchClass | undefined)> } -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType( - 'System.AllExtrinsicsLen', - 'Optional', - [], - sts.number(), - ) as AllExtrinsicsLenV0, +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, } /** * Total length (in bytes) for all extrinsics put together, for the current block. */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> } -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, } /** * Map of block numbers to block hashes. */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v0.H256 | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v0.H256 | undefined][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType( - 'System.ExtrinsicData', - 'Default', - [sts.number()], - sts.bytes(), - ) as ExtrinsicDataV0, +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, } /** * Extrinsics data for the current block (maps an extrinsic's index to its data). */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: Bytes | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: Bytes | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: Bytes | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: Bytes | undefined][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise<(Bytes | undefined)> + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, } /** * The current block number being processed. Set by `execute_block`. */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, } /** * Hash of the previous block. */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> } -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, } /** * Digest of the current block, also part of the block header. */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v0.EventRecord), - ) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v1.EventRecord), - ) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType( - 'System.Events', - 'Default', - [], - sts.array(() => v5.EventRecord), - ) as EventsV5, +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise<(v0.Digest | undefined)> +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise<(v0.EventRecord[] | undefined)> } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise<(v1.EventRecord[] | undefined)> } /** * Events deposited for the current block. - * + * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. - * + * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise<(v5.EventRecord[] | undefined)> } -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, } /** * The number of events in the `Events` list. */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType( - 'System.EventTopics', - 'Default', - [v0.H256], - sts.array(() => sts.tuple(() => [sts.number(), sts.number()])), - ) as EventTopicsV0, +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, } /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `>` list. - * + * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. - * + * * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<[number, number][] | undefined> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: [number, number][] | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: [number, number][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: [number, number][] | undefined][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType( - 'System.LastRuntimeUpgrade', - 'Optional', - [], - v0.LastRuntimeUpgradeInfo, - ) as LastRuntimeUpgradeV0, +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, } /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> } -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType( - 'System.UpgradedToU32RefCount', - 'Default', - [], - sts.boolean(), - ) as UpgradedToU32RefCountV0, +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, } /** * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType( - 'System.UpgradedToTripleRefCount', - 'Default', - [], - sts.boolean(), - ) as UpgradedToTripleRefCountV0, +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, } /** * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False * (default) if not. */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, } /** * The execution phase of the block. */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Phase | undefined)> } -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType( - 'System.AuthorizedUpgrade', - 'Optional', - [], - v0.CodeUpgradeAuthorization, - ) as AuthorizedUpgradeV0, +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, } /** * `Some` if a code upgrade has been authorized. */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> } -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType( - 'System.InherentsApplied', - 'Default', - [], - sts.boolean(), - ) as InherentsAppliedV5, +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, } /** * Whether all inherents have been applied. */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts index 36eb4e3eb..60de86b39 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts @@ -1,31 +1,43 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType('TransactionFees.MinReplicationFactor', sts.number()), +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType( + 'TransactionFees.MinReplicationFactor', + sts.number() + ), } -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType('TransactionFees.CreditSupply', sts.bigint()), +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType( + 'TransactionFees.CreditSupply', + sts.bigint() + ), } -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType('TransactionFees.TotalSpacePledged', sts.bigint()), +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType( + 'TransactionFees.TotalSpacePledged', + sts.bigint() + ), } -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType('TransactionFees.BlockchainHistorySize', sts.bigint()), +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType( + 'TransactionFees.BlockchainHistorySize', + sts.bigint() + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts index e7afe93bb..4726ccd18 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts @@ -1,54 +1,54 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }), - ), +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }) + ), } -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }), - ), +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts index 45d0515c6..34c003453 100644 --- a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts +++ b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts @@ -1,106 +1,86 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType( - 'TransactionFees.TransactionByteFee', - 'Default', - [], - v0.BlockTransactionByteFee, - ) as TransactionByteFeeV0, +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, } /** * The value of `transaction_byte_fee` for both the current and the next block. - * + * * The `next` value of `transaction_byte_fee` is updated at block finalization and used to * validate extrinsic to be included in the next block, the value is move to `current` at * block initialization and used to execute extrinsic in the current block. Together it * ensure we use the same value for both validating and executing the extrinsic. - * + * * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in * the genesis block which means there will be no signed extrinsic included in block #1. */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> } -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType( - 'TransactionFees.IsDuringBlockExecution', - 'Default', - [], - sts.boolean(), - ) as IsDuringBlockExecutionV0, +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, } /** * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` * is used to validate extrinsic or execute extrinsic. */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> } -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType( - 'TransactionFees.BlockAuthor', - 'Optional', - [], - v0.AccountId32, - ) as BlockAuthorV0, +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, } /** * Temporary value (cleared at block finalization) which contains current block author, so we * can issue fees during block finalization. */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> } -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType( - 'TransactionFees.CollectedBlockFees', - 'Optional', - [], - v0.CollectedFees, - ) as CollectedBlockFeesV0, +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, } /** * Temporary value (cleared at block finalization) which contains current block fees, so we can * issue fees during block finalization. */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CollectedFees | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts index c7363273b..92856764a 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts @@ -1,28 +1,31 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType('TransactionPayment.OperationalFeeMultiplier', sts.number()), +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType( + 'TransactionPayment.OperationalFeeMultiplier', + sts.number() + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts index 8f317f986..f2e82a56e 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts @@ -1,18 +1,18 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - ), +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }) + ), } diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts index 6deaeec28..1fe2ddae7 100644 --- a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts +++ b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts @@ -1,32 +1,22 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' -export const nextFeeMultiplier = { - v0: new StorageType( - 'TransactionPayment.NextFeeMultiplier', - 'Default', - [], - v0.FixedU128, - ) as NextFeeMultiplierV0, +export const nextFeeMultiplier = { + v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, } -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise<(v0.FixedU128 | undefined)> } -export const storageVersion = { - v0: new StorageType( - 'TransactionPayment.StorageVersion', - 'Default', - [], - v0.Releases, - ) as StorageVersionV0, +export const storageVersion = { + v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, } -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise<(v0.Releases | undefined)> } diff --git a/indexers/leaderboard-squid/src/types/v0.ts b/indexers/leaderboard-squid/src/types/v0.ts index 55324087b..a00fca6ac 100644 --- a/indexers/leaderboard-squid/src/types/v0.ts +++ b/indexers/leaderboard-squid/src/types/v0.ts @@ -1,396 +1,389 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const HistorySize = sts.bigint() export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } + return { + read: sts.bigint(), + write: sts.bigint(), + } }) export interface RuntimeDbWeight { - read: bigint - write: bigint + read: bigint + write: bigint } export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } + return { + max: Type_85, + } }) export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } }) export interface Type_85 { - normal: number - operational: number - mandatory: number + normal: number + operational: number + mandatory: number } export interface BlockLength { - max: Type_85 + max: Type_85 } export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } }) export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } }) export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } }) export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: Weight | undefined - maxTotal?: Weight | undefined - reserved?: Weight | undefined + baseExtrinsic: Weight + maxExtrinsic?: (Weight | undefined) + maxTotal?: (Weight | undefined) + reserved?: (Weight | undefined) } export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass } export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: [DomainEpoch, number, bigint] | undefined + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => - sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), - ), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), + } }) export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -402,104 +395,101 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -507,20 +497,18 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -528,33 +516,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -562,18 +550,18 @@ export type DomainId = number export type Releases = Releases_V1Ancient | Releases_V2 export interface Releases_V1Ancient { - __kind: 'V1Ancient' + __kind: 'V1Ancient' } export interface Releases_V2 { - __kind: 'V2' + __kind: 'V2' } export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } }) export type FixedU128 = bigint @@ -581,164 +569,162 @@ export type FixedU128 = bigint export const FixedU128 = sts.bigint() export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint + storage: bigint + compute: bigint + tips: bigint } export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } }) export interface BlockTransactionByteFee { - current: bigint - next: bigint + current: bigint + next: bigint } export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } + return { + current: sts.bigint(), + next: sts.bigint(), + } }) export interface Type_152 { - amount: bigint + amount: bigint } export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } + return { + amount: sts.bigint(), + } }) export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface ReserveData { - id: Bytes - amount: bigint + id: Bytes + amount: bigint } export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } + return { + id: sts.bytes(), + amount: sts.bigint(), + } }) export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons + id: Bytes + amount: bigint + reasons: Reasons } export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc export interface Reasons_All { - __kind: 'All' + __kind: 'All' } export interface Reasons_Fee { - __kind: 'Fee' + __kind: 'Fee' } export interface Reasons_Misc { - __kind: 'Misc' + __kind: 'Misc' } export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } }) export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } }) export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags } export type ExtraFlags = bigint export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } }) export const ExtraFlags = sts.bigint() @@ -748,15 +734,15 @@ export type Randomness = Bytes export const Randomness = sts.bytes() export interface PotEntropyValue { - targetSlot?: Slot | undefined - entropy: Bytes + targetSlot?: (Slot | undefined) + entropy: Bytes } export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } }) export type Signature = Bytes @@ -764,33 +750,33 @@ export type Signature = Bytes export const Signature = sts.bytes() export interface Scalar { - inner: Bytes + inner: Bytes } export type PieceOffset = number export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } + return { + inner: sts.bytes(), + } }) export const PieceOffset = sts.number() export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot } export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } }) export type SegmentIndex = bigint @@ -804,31 +790,31 @@ export const SegmentIndex = sts.bigint() export type Public = Bytes export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint + solutionRange: bigint + votingSolutionRange: bigint } export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } }) export interface SolutionRanges { - current: bigint - next?: bigint | undefined - votingCurrent: bigint - votingNext?: bigint | undefined + current: bigint + next?: (bigint | undefined) + votingCurrent: bigint + votingNext?: (bigint | undefined) } export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } }) export type NonZeroU32 = number @@ -840,203 +826,181 @@ export type Slot = bigint export const Slot = sts.bigint() export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean + codeHash: H256 + checkVersion: boolean } export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } + return { + codeHash: H256, + checkVersion: sts.boolean(), + } }) export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string + specVersion: number + specName: string } export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } + return { + specVersion: sts.number(), + specName: sts.string(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -1044,276 +1008,245 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } /** @@ -1326,215 +1259,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1546,45 +1463,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } /** @@ -1596,18 +1513,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1621,130 +1538,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1752,219 +1661,175 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = - | SlashedReason_BadExecutionReceipt - | SlashedReason_BundleEquivocation - | SlashedReason_InvalidBundle +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1972,61 +1837,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -2034,1210 +1899,1168 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) /** * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export interface Digest { - logs: DigestItem[] + logs: DigestItem[] } -export type DigestItem = - | DigestItem_Consensus - | DigestItem_Other - | DigestItem_PreRuntime - | DigestItem_RuntimeEnvironmentUpdated - | DigestItem_Seal +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] + __kind: 'Consensus' + value: [Bytes, Bytes] } export interface DigestItem_Other { - __kind: 'Other' - value: Bytes + __kind: 'Other' + value: Bytes } export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] + __kind: 'PreRuntime' + value: [Bytes, Bytes] } export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' + __kind: 'RuntimeEnvironmentUpdated' } export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] + __kind: 'Seal' + value: [Bytes, Bytes] } export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } + return { + logs: sts.array(() => DigestItem), + } }) export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } }) export type H256 = Bytes export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight + normal: Weight + operational: Weight + mandatory: Weight } export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } }) export type AccountId32 = Bytes export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData } export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = - | MultiAddress_Address20 - | MultiAddress_Address32 - | MultiAddress_Id - | MultiAddress_Index - | MultiAddress_Raw + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes + __kind: 'Address20' + value: Bytes } export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes + __kind: 'Address32' + value: Bytes } export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 + __kind: 'Id' + value: AccountId32 } export interface MultiAddress_Index { - __kind: 'Index' + __kind: 'Index' } export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } }) -export type EnableRewardsAt = - | EnableRewardsAt_Height - | EnableRewardsAt_Manually - | EnableRewardsAt_SolutionRange +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: number | undefined + __kind: 'Height' + value?: (number | undefined) } export interface EnableRewardsAt_Manually { - __kind: 'Manually' + __kind: 'Manually' } export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint + __kind: 'SolutionRange' + value: bigint } export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } + return { + vote: Vote, + signature: Signature, + } }) export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } }) export const PotOutput = sts.bytes() export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } }) export const PosProof = sts.bytes() @@ -3249,16 +3072,16 @@ export const RecordWitness = sts.bytes() export const RecordCommitment = sts.bytes() export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof } export type PosProof = Bytes @@ -3274,104 +3097,104 @@ export type HistorySize = bigint export type Vote = Vote_V0 export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput } export type PotOutput = Bytes export interface SignedVote { - vote: Vote - signature: Signature + vote: Vote + signature: Signature } export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } }) export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } }) export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest } export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header } export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const DomainId = sts.number() export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Public = sts.bytes() export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const H256 = sts.bytes() @@ -3379,80 +3202,80 @@ export const H256 = sts.bytes() export const AccountId32 = sts.bytes() export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) diff --git a/indexers/leaderboard-squid/src/types/v1.ts b/indexers/leaderboard-squid/src/types/v1.ts index 1e41fa131..4891a0287 100644 --- a/indexers/leaderboard-squid/src/types/v1.ts +++ b/indexers/leaderboard-squid/src/types/v1.ts @@ -1,204 +1,199 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const PalletId = sts.bytes() export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -206,245 +201,239 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: WithdrawalInShares | undefined + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: (WithdrawalInShares | undefined) } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() @@ -452,222 +441,197 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking - | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -675,265 +639,234 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -946,215 +879,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1166,45 +1083,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1222,18 +1139,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author. */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter. */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1247,130 +1164,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1378,174 +1287,150 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_StorageFeeDeposited - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } -export type SlashedReason = - | SlashedReason_BadExecutionReceipt - | SlashedReason_BundleEquivocation - | SlashedReason_InvalidBundle +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export type Slot = bigint @@ -1553,60 +1438,39 @@ export type Slot = bigint export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1614,61 +1478,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1676,445 +1540,436 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -2127,744 +1982,723 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) export const Slot = sts.bigint() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_InvalidTransfers - | FraudProof_ValidBundle + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes diff --git a/indexers/leaderboard-squid/src/types/v3.ts b/indexers/leaderboard-squid/src/types/v3.ts index 63a3a48d6..73fc962ae 100644 --- a/indexers/leaderboard-squid/src/types/v3.ts +++ b/indexers/leaderboard-squid/src/types/v3.ts @@ -1,8 +1,8 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export interface RewardPoint { - block: number - subsidy: bigint + block: number + subsidy: bigint } export type DomainId = number @@ -10,46 +10,42 @@ export type DomainId = number export const DomainId = sts.number() export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_PendingSlash - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -57,36 +53,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) @@ -96,106 +92,103 @@ export const Percent = sts.number() export type AccountId32 = Bytes export interface IdAmount { - id: HoldIdentifier - amount: bigint + id: HoldIdentifier + amount: bigint } export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier + __kind: 'Domains' + value: DomainsHoldIdentifier } export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier + __kind: 'Messenger' + value: MessengerHoldIdentifier } export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] + __kind: 'Channel' + value: [ChainId, bigint] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } -export type DomainsHoldIdentifier = - | DomainsHoldIdentifier_DomainInstantiation - | DomainsHoldIdentifier_Staking - | DomainsHoldIdentifier_StorageFund +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId + __kind: 'DomainInstantiation' + value: DomainId } export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier + __kind: 'Staking' + value: StakingHoldIdentifier } export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint + __kind: 'StorageFund' + value: bigint } export type StakingHoldIdentifier = StakingHoldIdentifier_Staked export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint + __kind: 'Staked' + value: bigint } export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } + return { + id: HoldIdentifier, + amount: sts.bigint(), + } }) export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } }) export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } }) export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } + return { + Staked: sts.bigint(), + } }) export const AccountId32 = sts.bytes() @@ -205,8 +198,8 @@ export type Slot = bigint export const Slot = sts.bigint() export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } + return { + block: sts.number(), + subsidy: sts.bigint(), + } }) diff --git a/indexers/leaderboard-squid/src/types/v5.ts b/indexers/leaderboard-squid/src/types/v5.ts index 14b3ff750..f626e91f8 100644 --- a/indexers/leaderboard-squid/src/types/v5.ts +++ b/indexers/leaderboard-squid/src/types/v5.ts @@ -1,28 +1,26 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = - | PermissionedActionAllowedBy_Accounts - | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -30,167 +28,162 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidBundleWeight - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -198,153 +191,150 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -354,47 +344,45 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -402,156 +390,134 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = - | Event_Balances - | Event_Domains - | Event_Messenger - | Event_OffencesSubspace - | Event_Rewards - | Event_Subspace - | Event_Sudo - | Event_System - | Event_TransactionFees - | Event_TransactionPayment - | Event_Transporter - | Event_Utility - | Event_Vesting + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent + __kind: 'Balances' + value: BalancesEvent } export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent + __kind: 'Domains' + value: DomainsEvent } export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent + __kind: 'Messenger' + value: MessengerEvent } export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent } export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent + __kind: 'Rewards' + value: RewardsEvent } export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent + __kind: 'Subspace' + value: SubspaceEvent } export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent + __kind: 'Sudo' + value: SudoEvent } export interface Event_System { - __kind: 'System' - value: SystemEvent + __kind: 'System' + value: SystemEvent } export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent + __kind: 'TransactionFees' + value: TransactionFeesEvent } export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent + __kind: 'TransactionPayment' + value: TransactionPaymentEvent } export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent + __kind: 'Transporter' + value: TransporterEvent } export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent + __kind: 'Utility' + value: UtilityEvent } export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent + __kind: 'Vesting' + value: VestingEvent } /** * The `Event` enum of this pallet */ -export type VestingEvent = - | VestingEvent_Claimed - | VestingEvent_VestingScheduleAdded - | VestingEvent_VestingSchedulesUpdated +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated /** * Claimed vesting. */ export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint + __kind: 'Claimed' + who: AccountId32 + amount: bigint } /** * Added new vesting schedule. */ export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule } /** * Updated vesting schedules. */ export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 + __kind: 'VestingSchedulesUpdated' + who: AccountId32 } export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint + start: number + period: number + periodCount: number + perPeriod: bigint } /** * The `Event` enum of this pallet */ -export type UtilityEvent = - | UtilityEvent_BatchCompleted - | UtilityEvent_BatchCompletedWithErrors - | UtilityEvent_BatchInterrupted - | UtilityEvent_DispatchedAs - | UtilityEvent_ItemCompleted - | UtilityEvent_ItemFailed +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed /** * Batch of dispatches completed fully with no error. */ export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' + __kind: 'BatchCompleted' } /** * Batch of dispatches completed but has errors. */ export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' + __kind: 'BatchCompletedWithErrors' } /** @@ -559,265 +525,234 @@ export interface UtilityEvent_BatchCompletedWithErrors { * well as the error. */ export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError + __kind: 'BatchInterrupted' + index: number + error: DispatchError } /** * A call was dispatched. */ export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result + __kind: 'DispatchedAs' + result: Result } /** * A single item within a Batch of dispatches has completed with no error. */ export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' + __kind: 'ItemCompleted' } /** * A single item within a Batch of dispatches has completed with error. */ export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = - | DispatchError_Arithmetic - | DispatchError_BadOrigin - | DispatchError_CannotLookup - | DispatchError_ConsumerRemaining - | DispatchError_Corruption - | DispatchError_Exhausted - | DispatchError_Module - | DispatchError_NoProviders - | DispatchError_Other - | DispatchError_RootNotAllowed - | DispatchError_Token - | DispatchError_TooManyConsumers - | DispatchError_Transactional - | DispatchError_Unavailable + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError + __kind: 'Arithmetic' + value: ArithmeticError } export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' + __kind: 'BadOrigin' } export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' + __kind: 'CannotLookup' } export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' + __kind: 'ConsumerRemaining' } export interface DispatchError_Corruption { - __kind: 'Corruption' + __kind: 'Corruption' } export interface DispatchError_Exhausted { - __kind: 'Exhausted' + __kind: 'Exhausted' } export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError + __kind: 'Module' + value: ModuleError } export interface DispatchError_NoProviders { - __kind: 'NoProviders' + __kind: 'NoProviders' } export interface DispatchError_Other { - __kind: 'Other' + __kind: 'Other' } export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' + __kind: 'RootNotAllowed' } export interface DispatchError_Token { - __kind: 'Token' - value: TokenError + __kind: 'Token' + value: TokenError } export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' + __kind: 'TooManyConsumers' } export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError + __kind: 'Transactional' + value: TransactionalError } export interface DispatchError_Unavailable { - __kind: 'Unavailable' + __kind: 'Unavailable' } export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer export interface TransactionalError_LimitReached { - __kind: 'LimitReached' + __kind: 'LimitReached' } export interface TransactionalError_NoLayer { - __kind: 'NoLayer' + __kind: 'NoLayer' } -export type TokenError = - | TokenError_BelowMinimum - | TokenError_Blocked - | TokenError_CannotCreate - | TokenError_CannotCreateHold - | TokenError_Frozen - | TokenError_FundsUnavailable - | TokenError_NotExpendable - | TokenError_OnlyProvider - | TokenError_UnknownAsset - | TokenError_Unsupported +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' + __kind: 'BelowMinimum' } export interface TokenError_Blocked { - __kind: 'Blocked' + __kind: 'Blocked' } export interface TokenError_CannotCreate { - __kind: 'CannotCreate' + __kind: 'CannotCreate' } export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' + __kind: 'CannotCreateHold' } export interface TokenError_Frozen { - __kind: 'Frozen' + __kind: 'Frozen' } export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' + __kind: 'FundsUnavailable' } export interface TokenError_NotExpendable { - __kind: 'NotExpendable' + __kind: 'NotExpendable' } export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' + __kind: 'OnlyProvider' } export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' + __kind: 'UnknownAsset' } export interface TokenError_Unsupported { - __kind: 'Unsupported' + __kind: 'Unsupported' } export interface ModuleError { - index: number - error: Bytes + index: number + error: Bytes } -export type ArithmeticError = - | ArithmeticError_DivisionByZero - | ArithmeticError_Overflow - | ArithmeticError_Underflow +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' + __kind: 'DivisionByZero' } export interface ArithmeticError_Overflow { - __kind: 'Overflow' + __kind: 'Overflow' } export interface ArithmeticError_Underflow { - __kind: 'Underflow' + __kind: 'Underflow' } /** * Events emitted by pallet-transporter. */ -export type TransporterEvent = - | TransporterEvent_IncomingTransferSuccessful - | TransporterEvent_OutgoingTransferFailed - | TransporterEvent_OutgoingTransferInitiated - | TransporterEvent_OutgoingTransferSuccessful +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful /** * Emits when a given incoming transfer was successfully processed. */ export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was failed on dst_chain. */ export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError } /** * Emits when there is a new outgoing transfer. */ export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** * Emits when a given outgoing transfer was successful. */ export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] } /** @@ -830,215 +765,199 @@ export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid * has been paid by `who`. */ export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint } /** * `pallet-transaction-fees` events */ -export type TransactionFeesEvent = - | TransactionFeesEvent_BlockFees - | TransactionFeesEvent_BurnedBlockFees +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees /** * Storage fees. */ export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint } /** * Fees burned due to equivocated block author or rewards not enabled. */ export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint } /** * Event for the System pallet. */ -export type SystemEvent = - | SystemEvent_CodeUpdated - | SystemEvent_ExtrinsicFailed - | SystemEvent_ExtrinsicSuccess - | SystemEvent_KilledAccount - | SystemEvent_NewAccount - | SystemEvent_Remarked - | SystemEvent_UpgradeAuthorized +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized /** * `:code` was updated. */ export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' + __kind: 'CodeUpdated' } /** * An extrinsic failed. */ export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo } /** * An extrinsic completed successfully. */ export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo } /** * An account was reaped. */ export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 + __kind: 'KilledAccount' + account: AccountId32 } /** * A new account was created. */ export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 + __kind: 'NewAccount' + account: AccountId32 } /** * On on-chain remark happened. */ export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 + __kind: 'Remarked' + sender: AccountId32 + hash: H256 } /** * An upgrade was authorized. */ export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean } export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays + weight: Weight + class: DispatchClass + paysFee: Pays } export type Pays = Pays_No | Pays_Yes export interface Pays_No { - __kind: 'No' + __kind: 'No' } export interface Pays_Yes { - __kind: 'Yes' + __kind: 'Yes' } -export type DispatchClass = - | DispatchClass_Mandatory - | DispatchClass_Normal - | DispatchClass_Operational +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational export interface DispatchClass_Mandatory { - __kind: 'Mandatory' + __kind: 'Mandatory' } export interface DispatchClass_Normal { - __kind: 'Normal' + __kind: 'Normal' } export interface DispatchClass_Operational { - __kind: 'Operational' + __kind: 'Operational' } /** * The `Event` enum of this pallet */ -export type SudoEvent = - | SudoEvent_KeyChanged - | SudoEvent_KeyRemoved - | SudoEvent_Sudid - | SudoEvent_SudoAsDone +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone /** * The sudo key has been updated. */ export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: AccountId32 | undefined - /** - * The new sudo key (if one was set). - */ - new: AccountId32 + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 } /** * The key was permanently removed. */ export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' + __kind: 'KeyRemoved' } /** * A sudo call just took place. */ export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** * A [sudo_as](Pallet::sudo_as) call just took place. */ export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result } /** @@ -1050,45 +969,45 @@ export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHead * Farmer vote. */ export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 } /** * Segment header was stored in blockchain history. */ export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader } export type SegmentHeader = SegmentHeader_V0 export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock } export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress + number: number + archivedProgress: ArchivedBlockProgress } export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' + __kind: 'Complete' } export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number + __kind: 'Partial' + value: number } export type SegmentCommitment = Bytes @@ -1106,18 +1025,18 @@ export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward * Issued reward for the block author */ export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint } /** * Issued reward for the voter */ export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint } /** @@ -1131,130 +1050,122 @@ export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence * \[kind, timeslot\]. */ export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes + __kind: 'Offence' + kind: Bytes + timeslot: Bytes } /** * `pallet-messenger` events */ -export type MessengerEvent = - | MessengerEvent_ChannelClosed - | MessengerEvent_ChannelInitiated - | MessengerEvent_ChannelOpen - | MessengerEvent_InboxMessage - | MessengerEvent_InboxMessageResponse - | MessengerEvent_OutboxMessage - | MessengerEvent_OutboxMessageResponse - | MessengerEvent_OutboxMessageResult +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult /** * Emits when a channel between two chains is closed. */ export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chains is initiated. */ export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a channel between two chain is open. */ export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint } /** * Emits when a new inbox message is validated and added to Inbox. */ export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Inbox message. */ export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits when a new message is added to the outbox. */ export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint } /** * Emits when a message response is available for Outbox message. */ export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint } /** * Emits outbox message result. */ export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult } export type OutboxMessageResult = Result @@ -1262,220 +1173,177 @@ export type OutboxMessageResult = Result /** * The `Event` enum of this pallet */ -export type DomainsEvent = - | DomainsEvent_BundleStored - | DomainsEvent_DomainEpochCompleted - | DomainsEvent_DomainInstantiated - | DomainsEvent_DomainOperatorAllowListUpdated - | DomainsEvent_DomainRuntimeCreated - | DomainsEvent_DomainRuntimeUpgradeScheduled - | DomainsEvent_DomainRuntimeUpgraded - | DomainsEvent_ForceDomainEpochTransition - | DomainsEvent_FraudProofProcessed - | DomainsEvent_FundsUnlocked - | DomainsEvent_OperatorDeregistered - | DomainsEvent_OperatorNominated - | DomainsEvent_OperatorRegistered - | DomainsEvent_OperatorRewarded - | DomainsEvent_OperatorSlashed - | DomainsEvent_OperatorSwitchedDomain - | DomainsEvent_OperatorTaxCollected - | DomainsEvent_OperatorUnlocked - | DomainsEvent_PreferredOperator - | DomainsEvent_StorageFeeDeposited - | DomainsEvent_WithdrewStake +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake /** * A domain bundle was included. */ export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint } export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId + __kind: 'DomainInstantiated' + domainId: DomainId } export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId } export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType } export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number } export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number + __kind: 'DomainRuntimeUpgraded' + runtimeId: number } export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number } export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: number | undefined + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) } export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint + __kind: 'OperatorDeregistered' + operatorId: bigint } export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId } export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint } export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason } export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId } export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint } export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint + __kind: 'OperatorUnlocked' + operatorId: bigint } export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 } export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint } export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 } export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } /** * The `Event` enum of this pallet */ -export type BalancesEvent = - | BalancesEvent_BalanceSet - | BalancesEvent_Burned - | BalancesEvent_Deposit - | BalancesEvent_DustLost - | BalancesEvent_Endowed - | BalancesEvent_Frozen - | BalancesEvent_Issued - | BalancesEvent_Locked - | BalancesEvent_Minted - | BalancesEvent_Rescinded - | BalancesEvent_ReserveRepatriated - | BalancesEvent_Reserved - | BalancesEvent_Restored - | BalancesEvent_Slashed - | BalancesEvent_Suspended - | BalancesEvent_Thawed - | BalancesEvent_TotalIssuanceForced - | BalancesEvent_Transfer - | BalancesEvent_Unlocked - | BalancesEvent_Unreserved - | BalancesEvent_Upgraded - | BalancesEvent_Withdraw +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw /** * A balance was set by root. */ export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint + __kind: 'BalanceSet' + who: AccountId32 + free: bigint } /** * Some amount was burned from an account. */ export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint + __kind: 'Burned' + who: AccountId32 + amount: bigint } /** * Some amount was deposited (e.g. for transaction fees). */ export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint + __kind: 'Deposit' + who: AccountId32 + amount: bigint } /** @@ -1483,61 +1351,61 @@ export interface BalancesEvent_Deposit { * resulting in an outright loss. */ export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint + __kind: 'DustLost' + account: AccountId32 + amount: bigint } /** * An account was created with some free balance. */ export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint } /** * Some balance was frozen. */ export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint + __kind: 'Frozen' + who: AccountId32 + amount: bigint } /** * Total issuance was increased by `amount`, creating a credit to be balanced. */ export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint + __kind: 'Issued' + amount: bigint } /** * Some balance was locked. */ export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint + __kind: 'Locked' + who: AccountId32 + amount: bigint } /** * Some amount was minted into an account. */ export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint + __kind: 'Minted' + who: AccountId32 + amount: bigint } /** * Total issuance was decreased by `amount`, creating a debt to be balanced. */ export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint + __kind: 'Rescinded' + amount: bigint } /** @@ -1545,447 +1413,438 @@ export interface BalancesEvent_Rescinded { * Final argument indicates the destination balance type. */ export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus } /** * Some balance was reserved (moved from free to reserved). */ export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint + __kind: 'Reserved' + who: AccountId32 + amount: bigint } /** * Some amount was restored into an account. */ export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint + __kind: 'Restored' + who: AccountId32 + amount: bigint } /** * Some amount was removed from the account (e.g. for misbehavior). */ export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint + __kind: 'Slashed' + who: AccountId32 + amount: bigint } /** * Some amount was suspended from an account (it can be restored later). */ export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint + __kind: 'Suspended' + who: AccountId32 + amount: bigint } /** * Some balance was thawed. */ export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint + __kind: 'Thawed' + who: AccountId32 + amount: bigint } /** * The `TotalIssuance` was forcefully changed. */ export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint } /** * Transfer succeeded. */ export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint } /** * Some balance was unlocked. */ export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint + __kind: 'Unlocked' + who: AccountId32 + amount: bigint } /** * Some balance was unreserved (moved from reserved to free). */ export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint + __kind: 'Unreserved' + who: AccountId32 + amount: bigint } /** * An account was upgraded. */ export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 + __kind: 'Upgraded' + who: AccountId32 } /** * Some amount was withdrawn from the account (e.g. for transaction fees). */ export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint + __kind: 'Withdraw' + who: AccountId32 + amount: bigint } export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved export interface BalanceStatus_Free { - __kind: 'Free' + __kind: 'Free' } export interface BalanceStatus_Reserved { - __kind: 'Reserved' + __kind: 'Reserved' } export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number + __kind: 'ApplyExtrinsic' + value: number } export interface Phase_Finalization { - __kind: 'Finalization' + __kind: 'Finalization' } export interface Phase_Initialization { - __kind: 'Initialization' + __kind: 'Initialization' } export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } }) export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } }) /** * The `Event` enum of this pallet */ export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } }) export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } }) /** * The `Event` enum of this pallet */ export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } }) export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } }) export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } }) export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } }) export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } + return { + index: sts.number(), + error: sts.bytes(), + } }) export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } }) /** * Events emitted by pallet-transporter. */ export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } }) /** * The `Event` enum of this pallet */ export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } }) /** * `pallet-transaction-fees` events */ export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } }) /** * Event for the System pallet. */ export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } }) export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } }) export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } + return { + No: sts.unit(), + Yes: sts.unit(), + } }) export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } }) /** * The `Event` enum of this pallet */ export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result( - () => sts.unit(), - () => DispatchError, - ), - }), - } + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } }) /** * Events type. */ export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } }) export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } }) export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } }) export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } + return { + Complete: sts.unit(), + Partial: sts.number(), + } }) export const SegmentCommitment = sts.bytes() @@ -1998,305 +1857,300 @@ export const Public = sts.bytes() * `pallet-rewards` events */ export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } }) /** * Events type. */ export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } }) /** * `pallet-messenger` events */ export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result( - () => sts.unit(), - () => DispatchError, -) + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) /** * The `Event` enum of this pallet */ export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } }) /** * The `Event` enum of this pallet */ export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } }) export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } + return { + Free: sts.unit(), + Reserved: sts.unit(), + } }) export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } }) -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( - () => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } - }, -) +}) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -2304,588 +2158,567 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = - sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } - }) +}) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = - sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } - }) +}) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = - | InvalidBundlesProofData_Bundle - | InvalidBundlesProofData_BundleAndExecution - | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = - | FraudProofVariant_InvalidBlockFees - | FraudProofVariant_InvalidBundles - | FraudProofVariant_InvalidDomainBlockHash - | FraudProofVariant_InvalidExtrinsicsRoot - | FraudProofVariant_InvalidStateTransition - | FraudProofVariant_InvalidTransfers - | FraudProofVariant_ValidBundle +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: ConsensusChainMmrLeafProof | undefined - maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } }) export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' + __kind: 'Decrease' } export interface AdjustmentDirection_Increase { - __kind: 'Increase' + __kind: 'Increase' } export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/staking-squid/db/migrations/1724203054265-Data.js b/indexers/staking-squid/db/migrations/1724205335447-Data.js similarity index 99% rename from indexers/staking-squid/db/migrations/1724203054265-Data.js rename to indexers/staking-squid/db/migrations/1724205335447-Data.js index cce8a5322..c57c8d92d 100644 --- a/indexers/staking-squid/db/migrations/1724203054265-Data.js +++ b/indexers/staking-squid/db/migrations/1724205335447-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724203054265 { - name = 'Data1724203054265' +module.exports = class Data1724205335447 { + name = 'Data1724205335447' async up(db) { await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) diff --git a/indexers/staking-squid/src/types/domains/calls.ts b/indexers/staking-squid/src/types/domains/calls.ts index 1d8f9629a..4195fdca8 100644 --- a/indexers/staking-squid/src/types/domains/calls.ts +++ b/indexers/staking-squid/src/types/domains/calls.ts @@ -1,372 +1,372 @@ -import { sts, Block, Bytes, Option, Result, CallType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' import * as v6 from '../v6' -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }), - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }), - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }), - ), - v6: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v6.Bundle, - }), - ), +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }) + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }) + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }) + ), + v6: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v6.Bundle, + }) + ), } -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }), - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }), - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }), - ), - v6: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v6.FraudProof, - }), - ), +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }) + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }) + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }) + ), + v6: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v6.FraudProof, + }) + ), } -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - ), +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), } -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - ), +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }) + ), } -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }), - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - ), +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }) + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }) + ), } -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - ), +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }) + ), } -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }), - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }), - ), +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }) + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }) + ), } -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }), - ), +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }) + ), } -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - ), +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }) + ), } -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }), - ), +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }) + ), } -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }), - ), +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }) + ), } -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }), - ), +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }) + ), } -export const sendDomainSudoCall = { - name: 'Domains.send_domain_sudo_call', - /** - * Submit a domain sudo call. - */ - v6: new CallType( - 'Domains.send_domain_sudo_call', - sts.struct({ - domainId: v6.DomainId, - call: sts.bytes(), - }), - ), +export const sendDomainSudoCall = { + name: 'Domains.send_domain_sudo_call', + /** + * Submit a domain sudo call. + */ + v6: new CallType( + 'Domains.send_domain_sudo_call', + sts.struct({ + domainId: v6.DomainId, + call: sts.bytes(), + }) + ), } -export const freezeDomain = { - name: 'Domains.freeze_domain', - /** - * Freezes a given domain. - * A frozen domain does not accept new bundles but accepts fraud proofs. - */ - v6: new CallType( - 'Domains.freeze_domain', - sts.struct({ - domainId: v6.DomainId, - }), - ), +export const freezeDomain = { + name: 'Domains.freeze_domain', + /** + * Freezes a given domain. + * A frozen domain does not accept new bundles but accepts fraud proofs. + */ + v6: new CallType( + 'Domains.freeze_domain', + sts.struct({ + domainId: v6.DomainId, + }) + ), } -export const unfreezeDomain = { - name: 'Domains.unfreeze_domain', - /** - * Unfreezes a frozen domain. - */ - v6: new CallType( - 'Domains.unfreeze_domain', - sts.struct({ - domainId: v6.DomainId, - }), - ), +export const unfreezeDomain = { + name: 'Domains.unfreeze_domain', + /** + * Unfreezes a frozen domain. + */ + v6: new CallType( + 'Domains.unfreeze_domain', + sts.struct({ + domainId: v6.DomainId, + }) + ), } -export const pruneDomainExecutionReceipt = { - name: 'Domains.prune_domain_execution_receipt', - /** - * Prunes a given execution receipt for given frozen domain. - * This call assumes the execution receipt to be bad and implicitly trusts Sudo - * to do necessary validation of the ER before dispatching this call. - */ - v6: new CallType( - 'Domains.prune_domain_execution_receipt', - sts.struct({ - domainId: v6.DomainId, - badReceiptHash: v6.H256, - }), - ), +export const pruneDomainExecutionReceipt = { + name: 'Domains.prune_domain_execution_receipt', + /** + * Prunes a given execution receipt for given frozen domain. + * This call assumes the execution receipt to be bad and implicitly trusts Sudo + * to do necessary validation of the ER before dispatching this call. + */ + v6: new CallType( + 'Domains.prune_domain_execution_receipt', + sts.struct({ + domainId: v6.DomainId, + badReceiptHash: v6.H256, + }) + ), } -export const transferTreasuryFunds = { - name: 'Domains.transfer_treasury_funds', - /** - * Transfer funds from treasury to given account - */ - v6: new CallType( - 'Domains.transfer_treasury_funds', - sts.struct({ - accountId: v6.AccountId32, - balance: sts.bigint(), - }), - ), +export const transferTreasuryFunds = { + name: 'Domains.transfer_treasury_funds', + /** + * Transfer funds from treasury to given account + */ + v6: new CallType( + 'Domains.transfer_treasury_funds', + sts.struct({ + accountId: v6.AccountId32, + balance: sts.bigint(), + }) + ), } -export const submitReceipt = { - name: 'Domains.submit_receipt', - v6: new CallType( - 'Domains.submit_receipt', - sts.struct({ - singletonReceipt: v6.SealedSingletonReceipt, - }), - ), +export const submitReceipt = { + name: 'Domains.submit_receipt', + v6: new CallType( + 'Domains.submit_receipt', + sts.struct({ + singletonReceipt: v6.SealedSingletonReceipt, + }) + ), } diff --git a/indexers/staking-squid/src/types/domains/constants.ts b/indexers/staking-squid/src/types/domains/constants.ts index aca0daa1d..a26b47666 100644 --- a/indexers/staking-squid/src/types/domains/constants.ts +++ b/indexers/staking-squid/src/types/domains/constants.ts @@ -1,153 +1,213 @@ -import { sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType('Domains.ConfirmationDepthK', sts.number()), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType('Domains.DomainRuntimeUpgradeDelay', sts.number()), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType('Domains.BlockTreePruningDepth', sts.number()), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockSize', sts.number()), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainBlockWeight', v0.Weight), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType('Domains.MaxBundlesPerBlock', sts.number()), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType('Domains.MaxDomainNameLength', sts.number()), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType('Domains.DomainInstantiationDeposit', sts.bigint()), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType('Domains.InitialDomainTxRange', sts.bigint()), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType('Domains.DomainTxRangeAdjustmentInterval', sts.bigint()), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType('Domains.MinOperatorStake', sts.bigint()), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType('Domains.MinNominatorStake', sts.bigint()), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType('Domains.StakeWithdrawalLockingPeriod', sts.number()), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType('Domains.StakeEpochDuration', sts.number()), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType('Domains.TreasuryAccount', v0.AccountId32), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType('Domains.MaxPendingStakingOperation', sts.number()), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType('Domains.MaxNominators', sts.number()), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType('Domains.SudoId', v0.AccountId32), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType('Domains.PalletId', v1.PalletId), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]), - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType('Domains.BundleLongevity', sts.number()), +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType( + 'Domains.ConfirmationDepthK', + sts.number() + ), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType( + 'Domains.DomainRuntimeUpgradeDelay', + sts.number() + ), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType( + 'Domains.BlockTreePruningDepth', + sts.number() + ), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockSize', + sts.number() + ), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockWeight', + v0.Weight + ), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxBundlesPerBlock', + sts.number() + ), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainNameLength', + sts.number() + ), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType( + 'Domains.DomainInstantiationDeposit', + sts.bigint() + ), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType( + 'Domains.InitialDomainTxRange', + sts.bigint() + ), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType( + 'Domains.DomainTxRangeAdjustmentInterval', + sts.bigint() + ), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType( + 'Domains.MinOperatorStake', + sts.bigint() + ), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType( + 'Domains.MinNominatorStake', + sts.bigint() + ), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType( + 'Domains.StakeWithdrawalLockingPeriod', + sts.number() + ), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType( + 'Domains.StakeEpochDuration', + sts.number() + ), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType( + 'Domains.TreasuryAccount', + v0.AccountId32 + ), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType( + 'Domains.MaxPendingStakingOperation', + sts.number() + ), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType( + 'Domains.MaxNominators', + sts.number() + ), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType( + 'Domains.SudoId', + v0.AccountId32 + ), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType( + 'Domains.PalletId', + v1.PalletId + ), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType( + 'Domains.BundleLongevity', + sts.number() + ), } diff --git a/indexers/staking-squid/src/types/domains/events.ts b/indexers/staking-squid/src/types/domains/events.ts index 1c6033c74..b75e07ce6 100644 --- a/indexers/staking-squid/src/types/domains/events.ts +++ b/indexers/staking-squid/src/types/domains/events.ts @@ -1,325 +1,325 @@ -import { sts, Block, Bytes, Option, Result, EventType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v5 from '../v5' import * as v6 from '../v6' -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }), - ), +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }) + ), } -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }), - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }), - ), +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }) + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }) + ), } -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - ), +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }) + ), } -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }), - ), +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }) + ), } -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }), - ), +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }) + ), } -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), - v6: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - amount: sts.bigint(), - }), - ), +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), + v6: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + amount: sts.bigint(), + }) + ), } -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }), - ), +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }) + ), } -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }), - ), +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }) + ), } -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }), - ), +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }) + ), } -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), } -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }), - ), +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }) + ), } -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }), - ), +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), } -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - ), +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }) + ), } -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - ), +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }) + ), } -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), } -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }), - ), +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), } -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - ), +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), } -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }), - ), +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }) + ), } -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }), - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }), - ), +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }) + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }) + ), } -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }), - ), +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }) + ), } -export const nominatedStakedUnlocked = { - name: 'Domains.NominatedStakedUnlocked', - v6: new EventType( - 'Domains.NominatedStakedUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - unlockedAmount: sts.bigint(), - }), - ), +export const nominatedStakedUnlocked = { + name: 'Domains.NominatedStakedUnlocked', + v6: new EventType( + 'Domains.NominatedStakedUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + unlockedAmount: sts.bigint(), + }) + ), } -export const storageFeeUnlocked = { - name: 'Domains.StorageFeeUnlocked', - v6: new EventType( - 'Domains.StorageFeeUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - storageFee: sts.bigint(), - }), - ), +export const storageFeeUnlocked = { + name: 'Domains.StorageFeeUnlocked', + v6: new EventType( + 'Domains.StorageFeeUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + storageFee: sts.bigint(), + }) + ), } -export const nominatorUnlocked = { - name: 'Domains.NominatorUnlocked', - v6: new EventType( - 'Domains.NominatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - }), - ), +export const nominatorUnlocked = { + name: 'Domains.NominatorUnlocked', + v6: new EventType( + 'Domains.NominatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v6.AccountId32, + }) + ), } -export const domainFrozen = { - name: 'Domains.DomainFrozen', - v6: new EventType( - 'Domains.DomainFrozen', - sts.struct({ - domainId: v6.DomainId, - }), - ), +export const domainFrozen = { + name: 'Domains.DomainFrozen', + v6: new EventType( + 'Domains.DomainFrozen', + sts.struct({ + domainId: v6.DomainId, + }) + ), } -export const domainUnfrozen = { - name: 'Domains.DomainUnfrozen', - v6: new EventType( - 'Domains.DomainUnfrozen', - sts.struct({ - domainId: v6.DomainId, - }), - ), +export const domainUnfrozen = { + name: 'Domains.DomainUnfrozen', + v6: new EventType( + 'Domains.DomainUnfrozen', + sts.struct({ + domainId: v6.DomainId, + }) + ), } -export const prunedExecutionReceipt = { - name: 'Domains.PrunedExecutionReceipt', - v6: new EventType( - 'Domains.PrunedExecutionReceipt', - sts.struct({ - domainId: v6.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - ), +export const prunedExecutionReceipt = { + name: 'Domains.PrunedExecutionReceipt', + v6: new EventType( + 'Domains.PrunedExecutionReceipt', + sts.struct({ + domainId: v6.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), } diff --git a/indexers/staking-squid/src/types/domains/storage.ts b/indexers/staking-squid/src/types/domains/storage.ts index 8595532a5..115361b07 100644 --- a/indexers/staking-squid/src/types/domains/storage.ts +++ b/indexers/staking-squid/src/types/domains/storage.ts @@ -1,801 +1,468 @@ -import { sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx } from '../support' +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' import * as v0 from '../v0' import * as v1 from '../v1' import * as v3 from '../v3' import * as v5 from '../v5' import * as v6 from '../v6' -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulBundles', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulBundlesV0, +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, } /** * Bundles submitted successfully in current block. */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType( - 'Domains.SuccessfulFraudProofs', - 'Default', - [v0.DomainId], - sts.array(() => v0.H256), - ) as SuccessfulFraudProofsV0, +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, } /** * Fraud proofs submitted successfully in current block. */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.H256[] | undefined][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, } /** * Stores the next runtime id. */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> } -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, } /** * Stores the next evm chain id. */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const runtimeRegistry = { - v0: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v0.RuntimeObject, - ) as RuntimeRegistryV0, - v5: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v5.RuntimeObject, - ) as RuntimeRegistryV5, - v6: new StorageType( - 'Domains.RuntimeRegistry', - 'Optional', - [sts.number()], - v6.RuntimeObject, - ) as RuntimeRegistryV6, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v0.RuntimeObject | undefined][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v5.RuntimeObject | undefined][]> -} - -export interface RuntimeRegistryV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise - getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: v6.RuntimeObject | undefined][]> - getPairs(block: Block, key: number): Promise<[k: number, v: v6.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: v6.RuntimeObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: v6.RuntimeObject | undefined][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType( - 'Domains.ScheduledRuntimeUpgrades', - 'Optional', - [sts.number(), sts.number()], - v0.ScheduledRuntimeUpgrade, - ) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise - getMany( - block: Block, - keys: [number, number][], - ): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[number, number][]> - getPairs( - block: Block, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairs( - block: Block, - key1: number, - key2: number, - ): Promise<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: number, - key2: number, - ): AsyncIterable<[k: [number, number], v: v0.ScheduledRuntimeUpgrade | undefined][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise -} - -export const operatorIdOwner = { - v0: new StorageType( - 'Domains.OperatorIdOwner', - 'Optional', - [sts.bigint()], - v0.AccountId32, - ) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.AccountId32 | undefined][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType( - 'Domains.OperatorSigningKey', - 'Optional', - [sts.bytes()], - sts.bigint(), - ) as OperatorSigningKeyV0, +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const runtimeRegistry = { + v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, + v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, + v6: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v6.RuntimeObject) as RuntimeRegistryV6, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v6.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> + getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> + getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const operatorIdOwner = { + v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, } /** * Indexes operator signing key against OperatorId. */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: bigint | undefined][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: Bytes, - ): AsyncIterable<[k: Bytes, v: bigint | undefined][]> -} - -export const domainStakingSummary = { - v0: new StorageType( - 'Domains.DomainStakingSummary', - 'Optional', - [v0.DomainId], - v0.StakingSummary, - ) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.StakingSummary | undefined][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise<(bigint | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> +} + +export const domainStakingSummary = { + v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, } /** * List of all registered operators and their configuration. */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v0.Operator | undefined][]> +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v1.Operator | undefined][]> +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> } /** * List of all registered operators and their configuration. */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: v3.Operator | undefined][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType( - 'Domains.PendingOperatorSwitches', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingOperatorSwitchesV0, +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, } /** * Temporary hold of all the operators who decided to switch to another domain. * Once epoch is complete, these operators are added to new domains under next_operators. */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType( - 'Domains.OperatorEpochSharePrice', - 'Optional', - [sts.bigint(), v0.DomainEpoch], - v0.SharePrice, - ) as OperatorEpochSharePriceV0, +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, } /** * Share price for the operator pool at the end of Domain epoch. */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): Promise<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.DomainEpoch, - ): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: v0.SharePrice | undefined][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Deposit, - ) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType( - 'Domains.Deposits', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Deposit, - ) as DepositsV1, +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, } /** * List of all deposits for given Operator. */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Deposit | undefined][]> +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> } /** * List of all deposits for given Operator. */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Deposit | undefined][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v0.AccountId32], - v0.Withdrawal, - ) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType( - 'Domains.Withdrawals', - 'Optional', - [sts.bigint(), v1.AccountId32], - v1.Withdrawal, - ) as WithdrawalsV1, +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): Promise<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v0.AccountId32, - ): AsyncIterable<[k: [bigint, v0.AccountId32], v: v0.Withdrawal | undefined][]> +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> } /** * List of all withdrawals for a given operator. */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairs( - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): Promise<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: bigint, - key2: v1.AccountId32, - ): AsyncIterable<[k: [bigint, v1.AccountId32], v: v1.Withdrawal | undefined][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType( - 'Domains.NominatorCount', - 'Default', - [sts.bigint()], - sts.number(), - ) as NominatorCountV0, +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, } /** @@ -806,37 +473,28 @@ export const nominatorCount = { * all the stake. * Since Operator themselves are first nominator, they are not counted. */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: number | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: number | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: number | undefined][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType( - 'Domains.PendingSlashes', - 'Optional', - [v0.DomainId], - sts.array(() => sts.bigint()), - ) as PendingSlashesV0, +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise<(number | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, } /** @@ -844,570 +502,362 @@ export const pendingSlashes = { * When the epoch for a given domain is complete, operator total stake is moved to treasury and * then deleted. */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: bigint[] | undefined][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType( - 'Domains.PendingStakingOperationCount', - 'Default', - [v0.DomainId], - sts.number(), - ) as PendingStakingOperationCountV0, +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, } /** * The pending staking operation count of the current epoch, it should not larger than * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, } /** * Stores the next domain id. */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v0.DomainId], - v0.DomainObject, - ) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v1.DomainId], - v1.DomainObject, - ) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType( - 'Domains.DomainRegistry', - 'Optional', - [v5.DomainId], - v5.DomainObject, - ) as DomainRegistryV5, +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise<(v0.DomainId | undefined)> +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, } /** * The domain registry */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.DomainObject | undefined][]> +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.DomainObject | undefined][]> +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> } /** * The domain registry */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairs( - block: Block, - key: v5.DomainId, - ): Promise<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.DomainId, - ): AsyncIterable<[k: v5.DomainId, v: v5.DomainObject | undefined][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType( - 'Domains.BlockTree', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as BlockTreeV0, +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, } /** * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, * which can be used get the block tree node in `BlockTreeNodes` */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v0.H256], - v0.BlockTreeNode, - ) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v1.H256], - v1.BlockTreeNode, - ) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v5.H256], - v5.BlockTreeNode, - ) as BlockTreeNodesV5, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v6: new StorageType( - 'Domains.BlockTreeNodes', - 'Optional', - [v6.H256], - v6.BlockTreeNode, - ) as BlockTreeNodesV6, +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v6: new StorageType('Domains.BlockTreeNodes', 'Optional', [v6.H256], v6.BlockTreeNode) as BlockTreeNodesV6, } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: v0.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.H256, - ): AsyncIterable<[k: v1.H256, v: v1.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v5.H256, - ): AsyncIterable<[k: v5.H256, v: v5.BlockTreeNode | undefined][]> +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> } /** * Mapping of block tree node hash to the node, each node represent a domain block */ -export interface BlockTreeNodesV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.H256): Promise - getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> - getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v6.H256, - ): AsyncIterable<[k: v6.H256, v: v6.BlockTreeNode | undefined][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType( - 'Domains.HeadReceiptNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadReceiptNumberV0, +export interface BlockTreeNodesV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.H256): Promise<(v6.BlockTreeNode | undefined)> + getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, } /** * The head receipt number of each domain */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType( - 'Domains.LatestConfirmedDomainBlockNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as LatestConfirmedDomainBlockNumberV0, +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, } /** * The latest confirmed block number of each domain. */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType( - 'Domains.HeadReceiptExtended', - 'Default', - [v0.DomainId], - sts.boolean(), - ) as HeadReceiptExtendedV0, +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, } /** * Whether the head receipt have extended in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: boolean | undefined][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType( - 'Domains.StateRoots', - 'Optional', - [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], - v0.H256, - ) as StateRootsV0, +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, } /** * State root mapped again each domain (block, hash) * This acts as an index for other protocols like XDM to fetch state roots faster. */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key: [v0.DomainId, number, v0.H256], - ): Promise<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v0.DomainId, number, v0.H256], - ): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: v0.H256 | undefined][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType( - 'Domains.ConsensusBlockHash', - 'Optional', - [v0.DomainId, sts.number()], - v0.H256, - ) as ConsensusBlockHashV0, +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, } /** @@ -1415,277 +865,114 @@ export const consensusBlockHash = { * only store the consensus block hash for a domain * if that consensus block contains bundle of the domain, the hash will be pruned when the ER * that point to the consensus block is pruned. - * + * * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number], v: v0.H256 | undefined][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v0.DomainId, sts.number(), sts.number()], - sts.array(() => v0.BundleDigest), - ) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType( - 'Domains.ExecutionInbox', - 'Default', - [v1.DomainId, sts.number(), sts.number()], - sts.array(() => v1.BundleDigest), - ) as ExecutionInboxV1, +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v0.DomainId, number, number][], - ): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v0.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v0.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v0.DomainId, number, number], v: v0.BundleDigest[] | undefined][]> +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> } /** * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * + * * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise - getMany( - block: Block, - keys: [v1.DomainId, number, number][], - ): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[v1.DomainId, number, number][]> - getPairs( - block: Block, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairs( - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): Promise<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key1: v1.DomainId, - key2: number, - key3: number, - ): AsyncIterable<[k: [v1.DomainId, number, number], v: v1.BundleDigest[] | undefined][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType( - 'Domains.InboxedBundleAuthor', - 'Optional', - [v0.H256], - sts.bigint(), - ) as InboxedBundleAuthorV0, +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, } /** @@ -1693,40 +980,28 @@ export const inboxedBundleAuthor = { * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and * slash malicious operator who have submitted invalid bundle. */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.H256, - ): AsyncIterable<[k: v0.H256, v: bigint | undefined][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType( - 'Domains.HeadDomainNumber', - 'Default', - [v0.DomainId], - sts.number(), - ) as HeadDomainNumberV0, +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, } /** @@ -1735,42 +1010,30 @@ export const headDomainNumber = { * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building * domain block, also used as a mapping of consensus block number to domain block number. */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: number | undefined][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType( - 'Domains.LastEpochStakingDistribution', - 'Optional', - [v0.DomainId], - v0.ElectionVerificationParams, - ) as LastEpochStakingDistributionV0, +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, } /** @@ -1780,431 +1043,284 @@ export const lastEpochStakingDistribution = { * TODO: The storage is cleared on block finalization that means this storage is already cleared when * verifying the `submit_bundle` extrinsic and not used at all */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.ElectionVerificationParams | undefined][]> -} - -export const domainTxRangeState = { - v0: new StorageType( - 'Domains.DomainTxRangeState', - 'Optional', - [v0.DomainId], - v0.TxRangeState, - ) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairs( - block: Block, - key: v0.DomainId, - ): Promise<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v0.DomainId, - ): AsyncIterable<[k: v0.DomainId, v: v0.TxRangeState | undefined][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType( - 'Domains.LatestConfirmedDomainBlock', - 'Optional', - [v1.DomainId], - v1.ConfirmedDomainBlock, - ) as LatestConfirmedDomainBlockV1, +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> +} + +export const domainTxRangeState = { + v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairs( - block: Block, - key: v1.DomainId, - ): Promise<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v1.DomainId, - ): AsyncIterable<[k: v1.DomainId, v: v1.ConfirmedDomainBlock | undefined][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType( - 'Domains.LatestSubmittedER', - 'Default', - [sts.tuple(() => [v3.DomainId, sts.bigint()])], - sts.number(), - ) as LatestSubmittedErV3, +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, } /** * The latest ER submitted by the operator for a given domain. It is used to determine if the operator * has submitted bad ER and is pending to slash. - * + * * The storage item of a given `(domain_id, operator_id)` will be pruned after either: * - All the ERs submitted by the operator for this domain are confirmed and pruned * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairs( - block: Block, - key: [v3.DomainId, bigint], - ): Promise<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: [v3.DomainId, bigint], - ): AsyncIterable<[k: [v3.DomainId, bigint], v: number | undefined][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType( - 'Domains.OperatorHighestSlot', - 'Default', - [sts.bigint()], - sts.bigint(), - ) as OperatorHighestSlotV5, +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, } /** * The highest slot of the bundle submitted by an operator */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint | undefined][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: bigint | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint | undefined][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType( - 'Domains.OperatorBundleSlot', - 'Default', - [sts.bigint()], - sts.array(() => sts.bigint()), - ) as OperatorBundleSlotV5, +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise<(bigint | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, } /** * The set of slot of the bundle submitted by an operator in the current block, cleared at the * next block initialization */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: bigint, - ): AsyncIterable<[k: bigint, v: bigint[] | undefined][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType( - 'Domains.PermissionedActionAllowedBy', - 'Optional', - [], - v5.PermissionedActionAllowedBy, - ) as PermissionedActionAllowedByV5, +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, } /** * Storage for PermissionedActions for domain instantiation and other permissioned calls. */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> } -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType( - 'Domains.AccumulatedTreasuryFunds', - 'Default', - [], - sts.bigint(), - ) as AccumulatedTreasuryFundsV5, +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, } /** * Accumulate treasury funds temporarily until the funds are above Existential despoit. * We do this to ensure minting small amounts into treasury would not fail. */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> } -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgradeRecords', - 'Default', - [sts.number()], - sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry])), - ) as DomainRuntimeUpgradeRecordsV5, +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, } /** * Storage used to keep track of which consensus block the domain runtime upgrade happen. */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<[number, v5.DomainRuntimeUpgradeEntry][] | undefined> - getMany( - block: Block, - keys: number[], - ): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs( - block: Block, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairs( - block: Block, - key: number, - ): Promise<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: number, - ): AsyncIterable<[k: number, v: [number, v5.DomainRuntimeUpgradeEntry][] | undefined][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType( - 'Domains.DomainRuntimeUpgrades', - 'Default', - [], - sts.array(() => sts.number()), - ) as DomainRuntimeUpgradesV5, +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> + getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, } /** * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared * in the next block initialization. */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise -} - -export const newAddedHeadReceipt = { - /** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ - v6: new StorageType( - 'Domains.NewAddedHeadReceipt', - 'Optional', - [v6.DomainId], - v6.H256, - ) as NewAddedHeadReceiptV6, +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise<(number[] | undefined)> +} + +export const newAddedHeadReceipt = { + /** + * The hash of the new head receipt added in the current consensus block + * + * Temporary storage only exist during block execution + */ + v6: new StorageType('Domains.NewAddedHeadReceipt', 'Optional', [v6.DomainId], v6.H256) as NewAddedHeadReceiptV6, } /** * The hash of the new head receipt added in the current consensus block - * + * * Temporary storage only exist during block execution */ -export interface NewAddedHeadReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.H256 | undefined][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: v6.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v6.DomainId, v: v6.H256 | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v6.DomainId, - ): AsyncIterable<[k: v6.DomainId, v: v6.H256 | undefined][]> -} - -export const latestConfirmedDomainExecutionReceipt = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v6: new StorageType( - 'Domains.LatestConfirmedDomainExecutionReceipt', - 'Optional', - [v6.DomainId], - v6.ExecutionReceipt, - ) as LatestConfirmedDomainExecutionReceiptV6, +export interface NewAddedHeadReceiptV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.DomainId): Promise<(v6.H256 | undefined)> + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> + getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> +} + +export const latestConfirmedDomainExecutionReceipt = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v6: new StorageType('Domains.LatestConfirmedDomainExecutionReceipt', 'Optional', [v6.DomainId], v6.ExecutionReceipt) as LatestConfirmedDomainExecutionReceiptV6, } /** * Storage to hold all the domain's latest confirmed block. */ -export interface LatestConfirmedDomainExecutionReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> - getPairs( - block: Block, - key: v6.DomainId, - ): Promise<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v6.DomainId, - ): AsyncIterable<[k: v6.DomainId, v: v6.ExecutionReceipt | undefined][]> -} - -export const domainSudoCalls = { - /** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ - v6: new StorageType( - 'Domains.DomainSudoCalls', - 'Default', - [v6.DomainId], - v6.DomainSudoCall, - ) as DomainSudoCallsV6, +export interface LatestConfirmedDomainExecutionReceiptV6 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v6.DomainId): Promise<(v6.ExecutionReceipt | undefined)> + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> + getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> +} + +export const domainSudoCalls = { + /** + * Temporary storage to hold the sudo calls meant for the Domains. + * Storage is cleared when there are any successful bundles in the next block. + * Only one sudo call is allowed per domain per consensus block. + */ + v6: new StorageType('Domains.DomainSudoCalls', 'Default', [v6.DomainId], v6.DomainSudoCall) as DomainSudoCallsV6, } /** @@ -2212,50 +1328,35 @@ export const domainSudoCalls = { * Storage is cleared when there are any successful bundles in the next block. * Only one sudo call is allowed per domain per consensus block. */ -export interface DomainSudoCallsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainSudoCall - get(block: Block, key: v6.DomainId): Promise - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> - getPairs( - block: Block, - key: v6.DomainId, - ): Promise<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - ): AsyncIterable<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> - getPairsPaged( - pageSize: number, - block: Block, - key: v6.DomainId, - ): AsyncIterable<[k: v6.DomainId, v: v6.DomainSudoCall | undefined][]> -} - -export const frozenDomains = { - /** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ - v6: new StorageType( - 'Domains.FrozenDomains', - 'Default', - [], - sts.array(() => v6.DomainId), - ) as FrozenDomainsV6, +export interface DomainSudoCallsV6 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v6.DomainSudoCall + get(block: Block, key: v6.DomainId): Promise<(v6.DomainSudoCall | undefined)> + getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v6.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> + getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> +} + +export const frozenDomains = { + /** + * Storage that hold a list of all frozen domains. + * A frozen domain does not accept the bundles but does accept a fraud proof. + */ + v6: new StorageType('Domains.FrozenDomains', 'Default', [], sts.array(() => v6.DomainId)) as FrozenDomainsV6, } /** * Storage that hold a list of all frozen domains. * A frozen domain does not accept the bundles but does accept a fraud proof. */ -export interface FrozenDomainsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainId[] - get(block: Block): Promise +export interface FrozenDomainsV6 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v6.DomainId[] + get(block: Block): Promise<(v6.DomainId[] | undefined)> } diff --git a/indexers/staking-squid/src/types/support.ts b/indexers/staking-squid/src/types/support.ts index 53e364bb5..456dfc2fb 100644 --- a/indexers/staking-squid/src/types/support.ts +++ b/indexers/staking-squid/src/types/support.ts @@ -1,146 +1,142 @@ -import type { BitSequence, Bytes, QualifiedName, Runtime } from '@subsquid/substrate-runtime' +import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' import * as sts from '@subsquid/substrate-runtime/lib/sts' -import { Option, Result } from '@subsquid/substrate-runtime/lib/sts' +import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' import assert from 'assert' -export { sts, Bytes, BitSequence, Option, Result } + +export {sts, Bytes, BitSequence, Option, Result} + export interface RuntimeCtx { - _runtime: Runtime + _runtime: Runtime } + export interface Block extends RuntimeCtx { - hash: Bytes - height: number + hash: Bytes + height: number } + interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown + block: RuntimeCtx + name: QualifiedName + args: unknown } + export class EventType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } } + export class CallType { - constructor( - public readonly name: QualifiedName, - private type: T, - ) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } } + export class ConstantType { - constructor( - private name: QualifiedName, - private type: T, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } + constructor(private name: QualifiedName, private type: T) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } } + export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type, - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged( - pageSize: number, - block: Block, - ...args: any[] - ): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } } diff --git a/indexers/staking-squid/src/types/v0.ts b/indexers/staking-squid/src/types/v0.ts index 27aead3f7..f573774c5 100644 --- a/indexers/staking-squid/src/types/v0.ts +++ b/indexers/staking-squid/src/types/v0.ts @@ -1,288 +1,281 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint } export type U256 = bigint export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } }) export const U256 = sts.bigint() export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint + operators: [bigint, bigint][] + totalDomainStake: bigint } export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 + headerHash: H256 + extrinsicsRoot: H256 } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } + return { + headerHash: H256, + extrinsicsRoot: H256, + } }) export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: [DomainEpoch, number, bigint] | undefined + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => - sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()]), - ), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), + } }) export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint } export interface KnownDeposit { - shares: bigint + shares: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } + return { + shares: sts.bigint(), + } }) export type DomainEpoch = [DomainId, number] @@ -294,118 +287,115 @@ export const SharePrice = sts.number() export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] } export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } }) export type AccountId32 = Bytes export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -413,34 +403,32 @@ export type StorageData = Bytes export type StorageKey = Bytes export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -448,33 +436,33 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export type RuntimeType = RuntimeType_Evm export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export type DomainId = number @@ -482,483 +470,463 @@ export type DomainId = number export type H256 = Bytes export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } }) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const Randomness = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type Randomness = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export const Slot = sts.bigint() export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader } export type Slot = bigint -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_ValidBundle +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } }) -export type SlashedReason = - | SlashedReason_BadExecutionReceipt - | SlashedReason_BundleEquivocation - | SlashedReason_InvalidBundle +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot + __kind: 'BundleEquivocation' + value: Slot } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export const AccountId32 = sts.bytes() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } + return { + Evm: sts.unit(), + } }) export const H256 = sts.bytes() diff --git a/indexers/staking-squid/src/types/v1.ts b/indexers/staking-squid/src/types/v1.ts index a1d3b1246..0b5706a56 100644 --- a/indexers/staking-squid/src/types/v1.ts +++ b/indexers/staking-squid/src/types/v1.ts @@ -1,204 +1,199 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export const PalletId = sts.bytes() export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 } export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } }) export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number + headerHash: H256 + extrinsicsRoot: H256 + size: number } export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } }) export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -206,712 +201,688 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainId = sts.number() export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: WithdrawalInShares | undefined + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: (WithdrawalInShares | undefined) } export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint } export type DomainEpoch = [DomainId, number] export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint } export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } }) export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } }) export type AccountId32 = Bytes export interface Deposit { - known: KnownDeposit - pending?: PendingDeposit | undefined + known: KnownDeposit + pending?: (PendingDeposit | undefined) } export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint } export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint + shares: bigint + storageFeeDeposit: bigint } export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } }) export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } }) export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_Registered - | OperatorStatus_Slashed + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const Percent = sts.number() export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } }) export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } }) export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } }) export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof } export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } }) export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof } -export const ImproperTransactionSortitionProof: sts.Type = - sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, } - }) +}) export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 + domainId: DomainId + badReceiptHash: H256 } export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } }) export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export const Slot = sts.bigint() export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader } export type Slot = bigint -export type FraudProof = - | FraudProof_BundleEquivocation - | FraudProof_ImproperTransactionSortition - | FraudProof_InvalidBlockFees - | FraudProof_InvalidBundles - | FraudProof_InvalidDomainBlockHash - | FraudProof_InvalidExtrinsicsRoot - | FraudProof_InvalidStateTransition - | FraudProof_InvalidTransaction - | FraudProof_InvalidTransfers - | FraudProof_ValidBundle +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof + __kind: 'BundleEquivocation' + value: BundleEquivocationProof } export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof } export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof } export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof + __kind: 'InvalidTransaction' + value: InvalidTransactionProof } export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes diff --git a/indexers/staking-squid/src/types/v3.ts b/indexers/staking-squid/src/types/v3.ts index 15bd51179..81adc1468 100644 --- a/indexers/staking-squid/src/types/v3.ts +++ b/indexers/staking-squid/src/types/v3.ts @@ -1,50 +1,46 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export type DomainId = number export const DomainId = sts.number() export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint } -export type OperatorStatus = - | OperatorStatus_Deregistered - | OperatorStatus_PendingSlash - | OperatorStatus_Registered - | OperatorStatus_Slashed +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo + __kind: 'Deregistered' + value: OperatorDeregisteredInfo } export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' + __kind: 'PendingSlash' } export interface OperatorStatus_Registered { - __kind: 'Registered' + __kind: 'Registered' } export interface OperatorStatus_Slashed { - __kind: 'Slashed' + __kind: 'Slashed' } export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number } export type DomainEpoch = [DomainId, number] @@ -52,36 +48,36 @@ export type DomainEpoch = [DomainId, number] export type Percent = number export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } }) export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } }) export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } }) export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) diff --git a/indexers/staking-squid/src/types/v5.ts b/indexers/staking-squid/src/types/v5.ts index 96bbbfdac..4735ccf0d 100644 --- a/indexers/staking-squid/src/types/v5.ts +++ b/indexers/staking-squid/src/types/v5.ts @@ -1,28 +1,26 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number + atHash: H256 + referenceCount: number } export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } + return { + atHash: H256, + referenceCount: sts.number(), + } }) -export type PermissionedActionAllowedBy = - | PermissionedActionAllowedBy_Accounts - | PermissionedActionAllowedBy_Anyone +export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] + __kind: 'Accounts' + value: AccountId32[] } export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export type AccountId32 = Bytes @@ -30,167 +28,162 @@ export type AccountId32 = Bytes export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidBundleWeight - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export const H256 = sts.bytes() @@ -198,153 +191,150 @@ export const H256 = sts.bytes() export type DomainId = number export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo } export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint + __kind: 'EVM' + chainId: bigint } export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] } -export type MultiAccountId = - | MultiAccountId_AccountId20 - | MultiAccountId_AccountId32 - | MultiAccountId_Raw +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes + __kind: 'AccountId20' + value: Bytes } export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes + __kind: 'AccountId32' + value: Bytes } export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes + __kind: 'Raw' + value: Bytes } export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators export interface OperatorAllowList_Anyone { - __kind: 'Anyone' + __kind: 'Anyone' } export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] + __kind: 'Operators' + value: AccountId32[] } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } }) export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } }) export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } }) export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } }) export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const AccountId32 = sts.bytes() export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -354,76 +344,72 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() export const StorageKey = sts.bytes() -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum( - () => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), } - }, -) +}) export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } }) export const Percent = sts.number() export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent } export type Percent = number @@ -431,583 +417,562 @@ export type Percent = number export const DomainId = sts.number() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export type PotOutput = Bytes export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = - sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, } - }) +}) -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = - sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } - }) +}) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } }) -export type InvalidBundlesProofData = - | InvalidBundlesProofData_Bundle - | InvalidBundlesProofData_BundleAndExecution - | InvalidBundlesProofData_Extrinsic +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = - | FraudProofVariant_InvalidBlockFees - | FraudProofVariant_InvalidBundles - | FraudProofVariant_InvalidDomainBlockHash - | FraudProofVariant_InvalidExtrinsicsRoot - | FraudProofVariant_InvalidStateTransition - | FraudProofVariant_InvalidTransfers - | FraudProofVariant_ValidBundle +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof } export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } }) export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: ConsensusChainMmrLeafProof | undefined - maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export const PotOutput = sts.bytes() export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } }) export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 + __kind: 'BadExecutionReceipt' + value: H256 } export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number + __kind: 'InvalidBundle' + value: number } export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) diff --git a/indexers/staking-squid/src/types/v6.ts b/indexers/staking-squid/src/types/v6.ts index 475e801af..91f2e1d24 100644 --- a/indexers/staking-squid/src/types/v6.ts +++ b/indexers/staking-squid/src/types/v6.ts @@ -1,172 +1,166 @@ -import { sts, Result, Option, Bytes, BitSequence } from './support' +import {sts, Result, Option, Bytes, BitSequence} from './support' export interface DomainSudoCall { - maybeCall?: Bytes | undefined + maybeCall?: (Bytes | undefined) } export const DomainSudoCall: sts.Type = sts.struct(() => { - return { - maybeCall: sts.option(() => sts.bytes()), - } + return { + maybeCall: sts.option(() => sts.bytes()), + } }) export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers } export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] } export type ChainId = ChainId_Consensus | ChainId_Domain export interface ChainId_Consensus { - __kind: 'Consensus' + __kind: 'Consensus' } export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId + __kind: 'Domain' + value: DomainId } export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint } export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 + bundle: BundleValidity + extrinsicsRoot: H256 } export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType + __kind: 'Invalid' + value: InvalidBundleType } export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 + __kind: 'Valid' + value: H256 } -export type InvalidBundleType = - | InvalidBundleType_IllegalTx - | InvalidBundleType_InherentExtrinsic - | InvalidBundleType_InvalidBundleWeight - | InvalidBundleType_InvalidXDM - | InvalidBundleType_OutOfRangeTx - | InvalidBundleType_UndecodableTx +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number + __kind: 'IllegalTx' + value: number } export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number + __kind: 'InherentExtrinsic' + value: number } export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' + __kind: 'InvalidBundleWeight' } export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number + __kind: 'InvalidXDM' + value: number } export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number + __kind: 'OutOfRangeTx' + value: number } export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number + __kind: 'UndecodableTx' + value: number } export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } }) export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } }) export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } + return { + Consensus: sts.unit(), + Domain: DomainId, + } }) export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } }) export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } }) export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } + return { + Invalid: InvalidBundleType, + Valid: H256, + } }) export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } }) export type DomainId = number @@ -174,44 +168,44 @@ export type DomainId = number export type H256 = Bytes export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] + executionReceipt: ExecutionReceipt + operatorIds: bigint[] } export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } }) export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - instanceCount: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + instanceCount: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number } export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number } export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] } export type StorageData = Bytes @@ -221,48 +215,46 @@ export type StorageKey = Bytes export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm export interface RuntimeType_AutoId { - __kind: 'AutoId' + __kind: 'AutoId' } export interface RuntimeType_Evm { - __kind: 'Evm' + __kind: 'Evm' } export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - instanceCount: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + instanceCount: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } }) export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } }) export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => - sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))]), - ), - } + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } }) export const StorageData = sts.bytes() @@ -270,649 +262,627 @@ export const StorageData = sts.bytes() export const StorageKey = sts.bytes() export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } }) export const SealedSingletonReceipt: sts.Type = sts.struct(() => { - return { - singletonReceipt: SingletonReceipt, - signature: sts.bytes(), - } + return { + singletonReceipt: SingletonReceipt, + signature: sts.bytes(), + } }) export const SingletonReceipt: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + } }) export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } }) export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } }) export interface VrfSignature { - preOutput: Bytes - proof: Bytes + preOutput: Bytes + proof: Bytes } export const PotOutput = sts.bytes() export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 } export type PotOutput = Bytes export interface SingletonReceipt { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt + proofOfElection: ProofOfElection + receipt: ExecutionReceipt } export interface SealedSingletonReceipt { - singletonReceipt: SingletonReceipt - signature: Bytes + singletonReceipt: SingletonReceipt + signature: Bytes } export const H256 = sts.bytes() export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } }) export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } }) export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } + return { + bundleWithProof: OpaqueBundleWithProof, + } }) export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } }) export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface SuccessfulBundlesProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof } export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] } export type OpaqueExtrinsic = Bytes export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes + header: BundleHeader + signature: Bytes } export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 } export interface Weight { - refTime: bigint - proofSize: bigint + refTime: bigint + proofSize: bigint } export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof + bundleWithProof: OpaqueBundleWithProof } export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface StorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface InvalidTransfersProof { - storageProof: StorageProof + storageProof: StorageProof } export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } }) export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } }) export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } }) export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number + __kind: 'Longer' + value: number } export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' + __kind: 'StateRoot' } export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } }) -export type ApplyExtrinsicMismatch = - | ApplyExtrinsicMismatch_Shorter - | ApplyExtrinsicMismatch_StateRoot +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' + __kind: 'Shorter' } export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number + __kind: 'StateRoot' + value: number } -export type ExecutionPhase = - | ExecutionPhase_ApplyExtrinsic - | ExecutionPhase_FinalizeBlock - | ExecutionPhase_InitializeBlock +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch } export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch } export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' + __kind: 'InitializeBlock' } export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase + executionProof: StorageProof + executionPhase: ExecutionPhase } export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } }) -export const DomainInherentExtrinsicDataProof: sts.Type = - sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, + maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), } - }) +}) export const DomainSudoCallStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainSudoCallStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const ConsensusTransactionByteFeeProof: sts.Type = - sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), } - }) +}) export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } -export const MaybeDomainRuntimeUpgradedProof: sts.Type = - sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), } - }) +}) export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockDigestProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: DomainRuntimeCodeProof | undefined + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) } export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface TimestampStorageProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof - maybeDomainSudoCallProof?: DomainSudoCallStorageProof | undefined + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof + maybeDomainSudoCallProof?: (DomainSudoCallStorageProof | undefined) } export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } + return { + trieNodes: sts.array(() => sts.bytes()), + } }) export interface BlockRandomnessProof { - trieNodes: Bytes[] + trieNodes: Bytes[] } export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => - sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest]), - ), - } + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } }) export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } + return { + Data: sts.bytes(), + Hash: H256, + } }) export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes + __kind: 'Data' + value: Bytes } export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 + __kind: 'Hash' + value: H256 } export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [Bytes | undefined, ExtrinsicDigest][] + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] } export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof } export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } + return { + digestStorageProof: StorageProof, + } }) export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof + digestStorageProof: StorageProof } export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } }) export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - InvalidXDMProofData: sts.enumStruct({ - extrinsicProof: StorageProof, - mmrRootProof: sts.option(() => MmrRootProof), - }), - } + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + InvalidXDMProofData: sts.enumStruct({ + extrinsicProof: StorageProof, + mmrRootProof: sts.option(() => MmrRootProof), + }), + } }) export const MmrRootProof: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - mmrRootStorageProof: MmrRootStorageProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + mmrRootStorageProof: MmrRootStorageProof, + } }) export const MmrRootStorageProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface MmrRootStorageProof { - storageProof: StorageProof + storageProof: StorageProof } export interface MmrRootProof { - mmrProof: ConsensusChainMmrLeafProof - mmrRootStorageProof: MmrRootStorageProof + mmrProof: ConsensusChainMmrLeafProof + mmrRootStorageProof: MmrRootStorageProof } export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: LeafProof + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: LeafProof } export interface LeafProof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] + leafIndices: bigint[] + leafCount: bigint + items: H256[] } export type EncodableOpaqueLeaf = Bytes -export type InvalidBundlesProofData = - | InvalidBundlesProofData_Bundle - | InvalidBundlesProofData_BundleAndExecution - | InvalidBundlesProofData_Extrinsic - | InvalidBundlesProofData_InvalidXDMProofData +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic | InvalidBundlesProofData_InvalidXDMProofData export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof + __kind: 'Bundle' + value: OpaqueBundleWithProof } export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof } export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof + __kind: 'Extrinsic' + value: StorageProof } export interface InvalidBundlesProofData_InvalidXDMProofData { - __kind: 'InvalidXDMProofData' - extrinsicProof: StorageProof - mmrRootProof?: MmrRootProof | undefined + __kind: 'InvalidXDMProofData' + extrinsicProof: StorageProof + mmrRootProof?: (MmrRootProof | undefined) } export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData } export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } + return { + storageProof: StorageProof, + } }) export interface InvalidBlockFeesProof { - storageProof: StorageProof + storageProof: StorageProof } -export type FraudProofVariant = - | FraudProofVariant_InvalidBlockFees - | FraudProofVariant_InvalidBundles - | FraudProofVariant_InvalidDomainBlockHash - | FraudProofVariant_InvalidExtrinsicsRoot - | FraudProofVariant_InvalidStateTransition - | FraudProofVariant_InvalidTransfers - | FraudProofVariant_ValidBundle +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof } export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof + __kind: 'InvalidBundles' + value: InvalidBundlesProof } export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof } export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof } export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof } export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof + __kind: 'InvalidTransfers' + value: InvalidTransfersProof } export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof + __kind: 'ValidBundle' + value: ValidBundleProof } export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } }) export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof } export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: LeafProof, - } + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: LeafProof, + } }) export const LeafProof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } }) export const EncodableOpaqueLeaf = sts.bytes() export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: ConsensusChainMmrLeafProof | undefined - maybeDomainRuntimeCodeProof?: DomainRuntimeCodeAt | undefined - proof: FraudProofVariant + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant } export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } }) export const OpaqueExtrinsic = sts.bytes() export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } + return { + header: BundleHeader, + signature: sts.bytes(), + } }) export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } }) export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } }) export const DomainId = sts.number() From da2a44209644544547213bdf5c2476e4b6bac832 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:04:29 -0400 Subject: [PATCH 20/42] improve stream for parallel process --- indexers/consensus-squid/src/blocks/index.ts | 1 - package.json | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index cf43079ad..b8eace9c3 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -10,7 +10,6 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) logBlock(ctx.blocks) for (let block of ctx.blocks) { - console.log('block', block) const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), diff --git a/package.json b/package.json index 7edbab692..b87ad7478 100644 --- a/package.json +++ b/package.json @@ -36,12 +36,12 @@ "explorer:lint:fix": "lerna run lint:fix --scope=explorer", "explorer:format": "lerna run format --scope=explorer", "explorer:all": "lerna run all --scope=explorer", - "indexers:typegen": "lerna run typegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:codegen": "lerna run codegen --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:migration": "lerna run migration --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:typegen": "lerna run typegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:codegen": "lerna run codegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:migration": "lerna run migration --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", "indexers:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:process": "lerna run process --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:format": "lerna run format --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:process": "lerna run process --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:format": "lerna run format --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", "indexers:all": "indexers:typegen && indexers:codegen && indexers:migration && indexers:build && indexers:process && indexers:process" }, "devDependencies": { From 0fe51dea144848615d06c0d75c374b0f47a7b1f6 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:08:59 -0400 Subject: [PATCH 21/42] add basic consensus user role real permission --- .../consensus/tables/public_account.yaml | 13 +++++++++++ .../consensus/tables/public_block.yaml | 19 ++++++++++++++++ .../consensus/tables/public_call.yaml | 18 +++++++++++++++ .../consensus/tables/public_event.yaml | 17 ++++++++++++++ .../tables/public_event_module_name.yaml | 9 ++++++++ .../consensus/tables/public_extrinsic.yaml | 22 +++++++++++++++++++ .../tables/public_extrinsic_module_name.yaml | 9 ++++++++ .../consensus/tables/public_log.yaml | 11 ++++++++++ .../databases/consensus/tables/tables.yaml | 2 -- 9 files changed, 118 insertions(+), 2 deletions(-) diff --git a/indexers/db/metadata/databases/consensus/tables/public_account.yaml b/indexers/db/metadata/databases/consensus/tables/public_account.yaml index 5681f6647..5447215a9 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_account.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_account.yaml @@ -1,3 +1,16 @@ table: name: account schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - updated_at + - free + - nonce + - reserved + - total + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_block.yaml b/indexers/db/metadata/databases/consensus/tables/public_block.yaml index e11689037..0993e0a84 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_block.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_block.yaml @@ -1,3 +1,22 @@ table: name: block schema: public +select_permissions: + - role: user + permission: + columns: + - id + - events_count + - extrinsics_count + - timestamp + - blockchain_size + - height + - space_pledged + - account_id + - extrinsics_root + - hash + - parent_hash + - spec_id + - state_root + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_call.yaml b/indexers/db/metadata/databases/consensus/tables/public_call.yaml index 42526eded..eed583b02 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_call.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_call.yaml @@ -1,3 +1,21 @@ table: name: call schema: public +select_permissions: + - role: user + permission: + columns: + - success + - id + - created_at + - pos + - account_id + - args + - block_id + - error + - extrinsic_id + - name + - parent + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_event.yaml b/indexers/db/metadata/databases/consensus/tables/public_event.yaml index 45c93395a..5bb373ba0 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_event.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_event.yaml @@ -1,3 +1,20 @@ table: name: event schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - index_in_block + - pos + - args + - block_id + - call_id + - extrinsic_id + - name + - phase + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml index 572af2bea..7845919e0 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml @@ -1,3 +1,12 @@ table: name: event_module_name schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - name + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml index 73c766366..e2eca7061 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml @@ -1,3 +1,25 @@ table: name: extrinsic schema: public +select_permissions: + - role: user + permission: + columns: + - success + - id + - created_at + - index_in_block + - pos + - fee + - nonce + - tip + - account_id + - args + - block_id + - error + - hash + - name + - signature + - timestamp + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml index 1104320bb..b994fafac 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml @@ -1,3 +1,12 @@ table: name: extrinsic_module_name schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - name + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_log.yaml b/indexers/db/metadata/databases/consensus/tables/public_log.yaml index 6c051690c..1dad5fda2 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_log.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_log.yaml @@ -1,3 +1,14 @@ table: name: log schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - block_id + - kind + - value + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/tables.yaml b/indexers/db/metadata/databases/consensus/tables/tables.yaml index e0205e861..4c1879d0c 100644 --- a/indexers/db/metadata/databases/consensus/tables/tables.yaml +++ b/indexers/db/metadata/databases/consensus/tables/tables.yaml @@ -6,6 +6,4 @@ - "!include public_extrinsic.yaml" - "!include public_extrinsic_module_name.yaml" - "!include public_log.yaml" -- "!include squid_processor_hot_block.yaml" -- "!include squid_processor_hot_change_log.yaml" - "!include squid_processor_status.yaml" From 4a6926f01d46c660557b440c937d3b3746fad0b6 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:18:31 -0400 Subject: [PATCH 22/42] add hasura --- package.json | 1 + yarn.lock | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b87ad7478..740278ea8 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "workspaces": { "packages": [ + "indexers/db", "indexers/consensus-squid", "indexers/leaderboard-squid", "indexers/staking-squid", diff --git a/yarn.lock b/yarn.lock index 7b94873d2..5e14d66b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5796,7 +5796,7 @@ axe-core@^4.9.1: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -axios@^1.7.4: +axios@^1.6.0, axios@^1.7.4: version "1.7.4" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== @@ -6210,6 +6210,13 @@ cfb@~1.2.1: adler-32 "~1.3.0" crc-32 "~1.2.0" +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + chalk@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -6243,6 +6250,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + change-case-all@1.0.15: version "1.0.15" resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.15.tgz#de29393167fc101d646cd76b0ef23e27d09756ad" @@ -8780,6 +8792,14 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" +hasura-cli@2.36.2: + version "2.36.2" + resolved "https://registry.yarnpkg.com/hasura-cli/-/hasura-cli-2.36.2.tgz#78bcb2200d2c062c73d046ef357bfa95f895672b" + integrity sha512-sB9Mu+wDtBQzUoupK6SkZppNQktoZt3oY1w3/t/KXf4+x/I3CG2lV7IhC9ZBrZoNoI93fiLLE3blhmxokOmOIw== + dependencies: + axios "^1.6.0" + chalk-template "^1.1.0" + header-case@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" From 7c5a676a435fb43873ec2fd1ffd3dcde1eca4fb6 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:18:41 -0400 Subject: [PATCH 23/42] mark as modified --- indexers/consensus-squid/src/blocks/index.ts | 1 + indexers/consensus-squid/src/events/index.ts | 3 ++- indexers/consensus-squid/src/extrinsics/index.ts | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index b8eace9c3..fbb37869e 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -19,6 +19,7 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { specId: block.header.specVersion.toString() ?? '', }) cache.blocks.set(_block.id, _block) + cache.isModified = true cache = await processBlock(cache, api, block) } diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 04b948b6d..e75c22961 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -14,6 +14,7 @@ export async function processEvents( name: event.name, }) cache.events.set(_event.id, _event) + cache.isModified = true cache = await processEvent(cache, api, block, extrinsic, event) } @@ -31,7 +32,7 @@ async function processEvent( name: event.name, }) cache.eventModuleNames.set(_eventModuleName.id, _eventModuleName) - + cache.isModified = true switch (event.name) { default: return cache diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index e2464c7e4..992e874ad 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -18,7 +18,7 @@ export async function processExtrinsics( indexInBlock: index, }) cache.extrinsics.set(_extrinsic.id, _extrinsic) - + cache.isModified = true cache = await processExtrinsic(cache, api, block, extrinsic) } return cache @@ -34,6 +34,7 @@ export async function processExtrinsic( name: extrinsic.call?.name, }) cache.extrinsicModuleNames.set(_extrinsicModuleName.id, _extrinsicModuleName) + cache.isModified = true switch (extrinsic.call?.name) { default: From 2be24b08b2d980734814ae3e3e05780d3335053a Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:18:47 -0400 Subject: [PATCH 24/42] add metadata --- indexers/consensus-squid/schema.graphql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index 63478cd6f..a6321a2a0 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -8,6 +8,16 @@ type Account @entity { updatedAt: Int! @index } +type Metadata @entity { + id: ID! @index + sortId: Int! @index + blockHash: String! @index + specName: String! @index + metadata: String! + createdAt: Int! @index + updatedAt: Int! @index +} + type Transfer @entity { id: ID! @index from: String! @index From 1f6264e0d7b013eabee2efe09acb1a0d527a2422 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:21:17 -0400 Subject: [PATCH 25/42] run migration and improve hasura script --- ...24205335442-Data.js => 1724206760556-Data.js} | 16 ++++++++++++++-- indexers/db/package.json | 5 +++-- ...24205335447-Data.js => 1724206760546-Data.js} | 4 ++-- ...24205335447-Data.js => 1724206760551-Data.js} | 4 ++-- 4 files changed, 21 insertions(+), 8 deletions(-) rename indexers/consensus-squid/db/migrations/{1724205335442-Data.js => 1724206760556-Data.js} (88%) rename indexers/leaderboard-squid/db/migrations/{1724205335447-Data.js => 1724206760546-Data.js} (99%) rename indexers/staking-squid/db/migrations/{1724205335447-Data.js => 1724206760551-Data.js} (99%) diff --git a/indexers/consensus-squid/db/migrations/1724205335442-Data.js b/indexers/consensus-squid/db/migrations/1724206760556-Data.js similarity index 88% rename from indexers/consensus-squid/db/migrations/1724205335442-Data.js rename to indexers/consensus-squid/db/migrations/1724206760556-Data.js index fc8c88e6f..f108091b0 100644 --- a/indexers/consensus-squid/db/migrations/1724205335442-Data.js +++ b/indexers/consensus-squid/db/migrations/1724206760556-Data.js @@ -1,11 +1,17 @@ -module.exports = class Data1724205335442 { - name = 'Data1724205335442' +module.exports = class Data1724206760556 { + name = 'Data1724206760556' async up(db) { await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "metadata" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "block_hash" text NOT NULL, "spec_name" text NOT NULL, "metadata" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_56b22355e89941b9792c04ab176" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_7d87619d6ebb96bef0757436e6" ON "metadata" ("sort_id") `) + await db.query(`CREATE INDEX "IDX_579fa06e1ce8b2151d784362c1" ON "metadata" ("block_hash") `) + await db.query(`CREATE INDEX "IDX_2d02620b857df828b0408eb7c0" ON "metadata" ("spec_name") `) + await db.query(`CREATE INDEX "IDX_924200e1ccaf7127fc54163fe4" ON "metadata" ("created_at") `) + await db.query(`CREATE INDEX "IDX_7ec3ae9bcc8a2c85b6c60df0e7" ON "metadata" ("updated_at") `) await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "timestamp" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) @@ -53,6 +59,12 @@ module.exports = class Data1724205335442 { await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) + await db.query(`DROP TABLE "metadata"`) + await db.query(`DROP INDEX "public"."IDX_7d87619d6ebb96bef0757436e6"`) + await db.query(`DROP INDEX "public"."IDX_579fa06e1ce8b2151d784362c1"`) + await db.query(`DROP INDEX "public"."IDX_2d02620b857df828b0408eb7c0"`) + await db.query(`DROP INDEX "public"."IDX_924200e1ccaf7127fc54163fe4"`) + await db.query(`DROP INDEX "public"."IDX_7ec3ae9bcc8a2c85b6c60df0e7"`) await db.query(`DROP TABLE "transfer"`) await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) diff --git a/indexers/db/package.json b/indexers/db/package.json index f9128d0f9..a1f0bbe7c 100644 --- a/indexers/db/package.json +++ b/indexers/db/package.json @@ -15,8 +15,9 @@ "url": "https://github.com/autonomys/astral/issues" }, "scripts": { - "start": "hasura console", - "metadata": "hasura metadata apply --skip-update-check" + "console": "hasura console", + "metadata": "hasura metadata apply --skip-update-check", + "start": "yarn metadata && yarn console" }, "devDependencies": { "hasura-cli": "2.36.2" diff --git a/indexers/leaderboard-squid/db/migrations/1724205335447-Data.js b/indexers/leaderboard-squid/db/migrations/1724206760546-Data.js similarity index 99% rename from indexers/leaderboard-squid/db/migrations/1724205335447-Data.js rename to indexers/leaderboard-squid/db/migrations/1724206760546-Data.js index 2fa2d0f9c..f5896817e 100644 --- a/indexers/leaderboard-squid/db/migrations/1724205335447-Data.js +++ b/indexers/leaderboard-squid/db/migrations/1724206760546-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724205335447 { - name = 'Data1724205335447' +module.exports = class Data1724206760546 { + name = 'Data1724206760546' async up(db) { await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) diff --git a/indexers/staking-squid/db/migrations/1724205335447-Data.js b/indexers/staking-squid/db/migrations/1724206760551-Data.js similarity index 99% rename from indexers/staking-squid/db/migrations/1724205335447-Data.js rename to indexers/staking-squid/db/migrations/1724206760551-Data.js index c57c8d92d..1d1254be1 100644 --- a/indexers/staking-squid/db/migrations/1724205335447-Data.js +++ b/indexers/staking-squid/db/migrations/1724206760551-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724205335447 { - name = 'Data1724205335447' +module.exports = class Data1724206760551 { + name = 'Data1724206760551' async up(db) { await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) From cb1a6c91bafade8976d51d67989d896eb40303c9 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:15:02 -0400 Subject: [PATCH 26/42] improve consensus schema --- ...06760556-Data.js => 1724209403174-Data.js} | 58 +++++++++++-------- indexers/consensus-squid/schema.graphql | 52 ++++++++++------- 2 files changed, 66 insertions(+), 44 deletions(-) rename indexers/consensus-squid/db/migrations/{1724206760556-Data.js => 1724209403174-Data.js} (80%) diff --git a/indexers/consensus-squid/db/migrations/1724206760556-Data.js b/indexers/consensus-squid/db/migrations/1724209403174-Data.js similarity index 80% rename from indexers/consensus-squid/db/migrations/1724206760556-Data.js rename to indexers/consensus-squid/db/migrations/1724209403174-Data.js index f108091b0..1d044e654 100644 --- a/indexers/consensus-squid/db/migrations/1724206760556-Data.js +++ b/indexers/consensus-squid/db/migrations/1724209403174-Data.js @@ -1,30 +1,38 @@ -module.exports = class Data1724206760556 { - name = 'Data1724206760556' +module.exports = class Data1724209403174 { + name = 'Data1724209403174' async up(db) { - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_620a549dbcb1fff62ea85695ca" ON "module" ("name") `) + await db.query(`CREATE INDEX "IDX_aac8e16583153278c82c899ab8" ON "module" ("created_at") `) + await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_7b282ebcbaa791f6d66114d98e" ON "extrinsic_name" ("module_id") `) + await db.query(`CREATE INDEX "IDX_ce36c0304a5d68c15e02d71314" ON "extrinsic_name" ("name") `) + await db.query(`CREATE INDEX "IDX_bae4551dd1315a2d67413b3890" ON "extrinsic_name" ("created_at") `) + await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_04b26a4bd014a96a4dce111831" ON "event_name" ("module_id") `) + await db.query(`CREATE INDEX "IDX_8cc9a89327e353743cdbdeaf62" ON "event_name" ("name") `) + await db.query(`CREATE INDEX "IDX_308f89b7bd77129d674c746b9f" ON "event_name" ("created_at") `) await db.query(`CREATE TABLE "metadata" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "block_hash" text NOT NULL, "spec_name" text NOT NULL, "metadata" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_56b22355e89941b9792c04ab176" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_7d87619d6ebb96bef0757436e6" ON "metadata" ("sort_id") `) await db.query(`CREATE INDEX "IDX_579fa06e1ce8b2151d784362c1" ON "metadata" ("block_hash") `) await db.query(`CREATE INDEX "IDX_2d02620b857df828b0408eb7c0" ON "metadata" ("spec_name") `) await db.query(`CREATE INDEX "IDX_924200e1ccaf7127fc54163fe4" ON "metadata" ("created_at") `) await db.query(`CREATE INDEX "IDX_7ec3ae9bcc8a2c85b6c60df0e7" ON "metadata" ("updated_at") `) - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "timestamp" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) + await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) + await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "timestamp" numeric NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) - await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "timestamp" integer NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "timestamp" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) await db.query(`CREATE INDEX "IDX_fc33c4502a5338a540862a4438" ON "block" ("account_id") `) - await db.query(`CREATE TABLE "extrinsic_module_name" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_e3d3a5a01f50bf01655cf4f30eb" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_bf23a0cce635d8eba9918d0339" ON "extrinsic_module_name" ("name") `) - await db.query(`CREATE INDEX "IDX_e0dd20a60a46b0b9268ed2830e" ON "extrinsic_module_name" ("created_at") `) await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "pos" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "args" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) @@ -33,9 +41,6 @@ module.exports = class Data1724206760556 { await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event_module_name" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_07f4296e4cf56dce19efa3be07c" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ec4fc7a578894139f5bbdfbb33" ON "event_module_name" ("name") `) - await db.query(`CREATE INDEX "IDX_21dacdfedad37a0c7547c5164a" ON "event_module_name" ("created_at") `) await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) @@ -55,16 +60,27 @@ module.exports = class Data1724206760556 { } async down(db) { - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) + await db.query(`DROP TABLE "module"`) + await db.query(`DROP INDEX "public"."IDX_620a549dbcb1fff62ea85695ca"`) + await db.query(`DROP INDEX "public"."IDX_aac8e16583153278c82c899ab8"`) + await db.query(`DROP TABLE "extrinsic_name"`) + await db.query(`DROP INDEX "public"."IDX_7b282ebcbaa791f6d66114d98e"`) + await db.query(`DROP INDEX "public"."IDX_ce36c0304a5d68c15e02d71314"`) + await db.query(`DROP INDEX "public"."IDX_bae4551dd1315a2d67413b3890"`) + await db.query(`DROP TABLE "event_name"`) + await db.query(`DROP INDEX "public"."IDX_04b26a4bd014a96a4dce111831"`) + await db.query(`DROP INDEX "public"."IDX_8cc9a89327e353743cdbdeaf62"`) + await db.query(`DROP INDEX "public"."IDX_308f89b7bd77129d674c746b9f"`) await db.query(`DROP TABLE "metadata"`) await db.query(`DROP INDEX "public"."IDX_7d87619d6ebb96bef0757436e6"`) await db.query(`DROP INDEX "public"."IDX_579fa06e1ce8b2151d784362c1"`) await db.query(`DROP INDEX "public"."IDX_2d02620b857df828b0408eb7c0"`) await db.query(`DROP INDEX "public"."IDX_924200e1ccaf7127fc54163fe4"`) await db.query(`DROP INDEX "public"."IDX_7ec3ae9bcc8a2c85b6c60df0e7"`) + await db.query(`DROP TABLE "account"`) + await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) + await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) + await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) await db.query(`DROP TABLE "transfer"`) await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) @@ -75,9 +91,6 @@ module.exports = class Data1724206760556 { await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) await db.query(`DROP INDEX "public"."IDX_fc33c4502a5338a540862a4438"`) - await db.query(`DROP TABLE "extrinsic_module_name"`) - await db.query(`DROP INDEX "public"."IDX_bf23a0cce635d8eba9918d0339"`) - await db.query(`DROP INDEX "public"."IDX_e0dd20a60a46b0b9268ed2830e"`) await db.query(`DROP TABLE "extrinsic"`) await db.query(`DROP INDEX "public"."IDX_1f45de0713a55049009e8e8127"`) await db.query(`DROP INDEX "public"."IDX_86604c0ff42c185b99ee69c718"`) @@ -86,9 +99,6 @@ module.exports = class Data1724206760556 { await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) await db.query(`DROP INDEX "public"."IDX_6e232918078798b1fade21dcf8"`) await db.query(`DROP INDEX "public"."IDX_b09d3ab32bef80d2e4bf48cdac"`) - await db.query(`DROP TABLE "event_module_name"`) - await db.query(`DROP INDEX "public"."IDX_ec4fc7a578894139f5bbdfbb33"`) - await db.query(`DROP INDEX "public"."IDX_21dacdfedad37a0c7547c5164a"`) await db.query(`DROP TABLE "event"`) await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index a6321a2a0..deb2f5256 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -1,11 +1,25 @@ -type Account @entity { +type Module @entity { id: ID! @index - nonce: BigInt! - free: BigInt! - reserved: BigInt! - total: BigInt @index + name: String! @index + extrinsicCount: Int! + eventCount: Int! + createdAt: Int! @index +} + +type ExtrinsicName @entity { + id: ID! @index + moduleId: String! @index + name: String! @index + count: Int! + createdAt: Int! @index +} + +type EventName @entity { + id: ID! @index + moduleId: String! @index + name: String! @index + count: Int! createdAt: Int! @index - updatedAt: Int! @index } type Metadata @entity { @@ -18,19 +32,29 @@ type Metadata @entity { updatedAt: Int! @index } +type Account @entity { + id: ID! @index + nonce: BigInt! + free: BigInt! + reserved: BigInt! + total: BigInt @index + createdAt: Int! @index + updatedAt: Int! @index +} + type Transfer @entity { id: ID! @index from: String! @index to: String! @index value: BigInt! - timestamp: Int! @index + timestamp: BigInt! @index createdAt: Int! @index } type Block @entity { id: ID! @index height: BigInt! @index - timestamp: Int! @index + timestamp: BigInt! @index hash: String! @index parentHash: String! specId: String! @@ -43,12 +67,6 @@ type Block @entity { accountId: String! @index } -type ExtrinsicModuleName @entity { - id: ID! @index - name: String! @index - createdAt: Int! @index -} - type Extrinsic @entity { id: ID! @index hash: String! @index @@ -68,12 +86,6 @@ type Extrinsic @entity { createdAt: Int! @index } -type EventModuleName @entity { - id: ID! @index - name: String! @index - createdAt: Int! @index -} - type Event @entity { id: ID! @index indexInBlock: Int! From e524b48829c67ea90480372b1bc477e6d3c5f76f Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:15:20 -0400 Subject: [PATCH 27/42] improve consensus squid logic --- indexers/consensus-squid/src/blocks/index.ts | 2 +- .../consensus-squid/src/events/account.ts | 18 +++++++++ indexers/consensus-squid/src/events/index.ts | 10 ++--- .../consensus-squid/src/extrinsics/index.ts | 16 ++++---- indexers/consensus-squid/src/processor.ts | 4 +- indexers/consensus-squid/src/storage/block.ts | 2 +- .../src/storage/eventModuleName.ts | 31 --------------- .../consensus-squid/src/storage/eventName.ts | 39 +++++++++++++++++++ .../src/storage/extrinsicModuleName.ts | 31 --------------- .../src/storage/extrinsicName.ts | 39 +++++++++++++++++++ indexers/consensus-squid/src/storage/index.ts | 5 ++- .../consensus-squid/src/storage/module.ts | 34 ++++++++++++++++ indexers/consensus-squid/src/utils/cache.ts | 37 +++++++++++------- indexers/consensus-squid/src/utils/index.ts | 22 +++-------- 14 files changed, 177 insertions(+), 113 deletions(-) create mode 100644 indexers/consensus-squid/src/events/account.ts delete mode 100644 indexers/consensus-squid/src/storage/eventModuleName.ts create mode 100644 indexers/consensus-squid/src/storage/eventName.ts delete mode 100644 indexers/consensus-squid/src/storage/extrinsicModuleName.ts create mode 100644 indexers/consensus-squid/src/storage/extrinsicName.ts create mode 100644 indexers/consensus-squid/src/storage/module.ts diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index fbb37869e..b16119833 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -13,7 +13,7 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), - timestamp: Number(block.header.timestamp ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), hash: block.header.hash ?? '', parentHash: block.header.parentHash ?? '', specId: block.header.specVersion.toString() ?? '', diff --git a/indexers/consensus-squid/src/events/account.ts b/indexers/consensus-squid/src/events/account.ts new file mode 100644 index 000000000..2180324f4 --- /dev/null +++ b/indexers/consensus-squid/src/events/account.ts @@ -0,0 +1,18 @@ +import type { CtxBlock, CtxEvent } from '../processor' +import { getOrCreateAccount } from '../storage/account' +import { hexToAccount } from '../utils' +import { Cache } from '../utils/cache' + +export function processTransferEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { + const from = hexToAccount(event.args.from) + const to = hexToAccount(event.args.to) + const amount = BigInt(event.args.amount) + + const fromAccount = getOrCreateAccount(cache, block, from) + const toAccount = getOrCreateAccount(cache, block, to) + cache.accounts.set(fromAccount.id, fromAccount) + cache.accounts.set(toAccount.id, toAccount) + cache.isModified = true + + return cache +} diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index e75c22961..47011fe85 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,6 +1,6 @@ import type { ApiPromise } from '@autonomys/auto-utils' import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' -import { getOrCreateEvent, getOrCreateEventModuleName } from '../storage' +import { getOrCreateEvent, getOrCreateEventName } from '../storage' import { Cache } from '../utils/cache' export async function processEvents( @@ -28,11 +28,11 @@ async function processEvent( extrinsic: CtxExtrinsic, event: CtxEvent, ) { - const _eventModuleName = getOrCreateEventModuleName(cache, block, event.id, { - name: event.name, - }) - cache.eventModuleNames.set(_eventModuleName.id, _eventModuleName) + const eventName = getOrCreateEventName(cache, block, event.name) + eventName.count++ + cache.eventNames.set(eventName.id, eventName) cache.isModified = true + switch (event.name) { default: return cache diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 992e874ad..3863b0e85 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -1,7 +1,7 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { processEvents } from '../events' import type { CtxBlock, CtxExtrinsic } from '../processor' -import { getOrCreateExtrinsic, getOrCreateExtrinsicModuleName } from '../storage' +import { getOrCreateExtrinsic, getOrCreateExtrinsicName } from '../storage' import { Cache } from '../utils/cache' export async function processExtrinsics( @@ -11,14 +11,13 @@ export async function processExtrinsics( extrinsics: CtxExtrinsic[], ) { for (let [index, extrinsic] of extrinsics.entries()) { - console.log('extrinsic', extrinsic) - const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { hash: extrinsic.hash, indexInBlock: index, }) cache.extrinsics.set(_extrinsic.id, _extrinsic) cache.isModified = true + cache = await processExtrinsic(cache, api, block, extrinsic) } return cache @@ -30,11 +29,12 @@ export async function processExtrinsic( block: CtxBlock, extrinsic: CtxExtrinsic, ) { - const _extrinsicModuleName = getOrCreateExtrinsicModuleName(cache, block, extrinsic.id, { - name: extrinsic.call?.name, - }) - cache.extrinsicModuleNames.set(_extrinsicModuleName.id, _extrinsicModuleName) - cache.isModified = true + if (extrinsic.call) { + const extrinsicName = getOrCreateExtrinsicName(cache, block, extrinsic.call.name) + extrinsicName.count++ + cache.extrinsicNames.set(extrinsicName.id, extrinsicName) + cache.isModified = true + } switch (extrinsic.call?.name) { default: diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts index 1869099c3..18a863a41 100644 --- a/indexers/consensus-squid/src/processor.ts +++ b/indexers/consensus-squid/src/processor.ts @@ -20,13 +20,13 @@ export const processor = new SubstrateBatchProcessor() from: 0, }) .addCall({ - name: ['*'], events: true, + stack: true, extrinsic: true, }) .addEvent({ - name: ['*'], call: true, + stack: true, extrinsic: true, }) .setFields({ diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts index 9bd457a14..ad1fec200 100644 --- a/indexers/consensus-squid/src/storage/block.ts +++ b/indexers/consensus-squid/src/storage/block.ts @@ -8,7 +8,7 @@ export const createBlock = (block: CtxBlock, props: Partial = {}): Block return new Block({ id: props.id ?? '', height: props.height ?? BigInt(0), - timestamp: props.timestamp ?? 0, + timestamp: props.timestamp ?? BigInt(0), hash: props.hash ?? '', parentHash: props.parentHash ?? '', specId: props.specId ?? '', diff --git a/indexers/consensus-squid/src/storage/eventModuleName.ts b/indexers/consensus-squid/src/storage/eventModuleName.ts deleted file mode 100644 index 0ad631f2d..000000000 --- a/indexers/consensus-squid/src/storage/eventModuleName.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { EventModuleName } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' -import { Cache } from '../utils/cache' - -export const createEventModuleName = ( - block: CtxBlock, - id: string, - props: Partial = {}, -): EventModuleName => { - const blockNumber = getBlockNumber(block) - return new EventModuleName({ - id: id, - name: '', - createdAt: blockNumber, - ...props, - }) -} - -export const getOrCreateEventModuleName = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): EventModuleName => { - const eventModuleName = cache.eventModuleNames.get(id) - - if (!eventModuleName) return createEventModuleName(block, id, props) - - return eventModuleName -} diff --git a/indexers/consensus-squid/src/storage/eventName.ts b/indexers/consensus-squid/src/storage/eventName.ts new file mode 100644 index 000000000..d5fdca49f --- /dev/null +++ b/indexers/consensus-squid/src/storage/eventName.ts @@ -0,0 +1,39 @@ +import { EventName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' +import { getOrCreateModule } from './module' + +export const createEventName = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): EventName => { + const [moduleId, name] = splitModuleAndId(id) + const blockNumber = getBlockNumber(block) + return new EventName({ + id: stringUID(id), + moduleId, + name, + count: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateEventName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): EventName => { + const module = getOrCreateModule(cache, block, id) + cache.modules.set(module.id, module) + cache.isModified = true + + const eventModuleName = cache.eventNames.get(stringUID(id)) + + if (!eventModuleName) return createEventName(block, id, props) + + return eventModuleName +} diff --git a/indexers/consensus-squid/src/storage/extrinsicModuleName.ts b/indexers/consensus-squid/src/storage/extrinsicModuleName.ts deleted file mode 100644 index f8072af41..000000000 --- a/indexers/consensus-squid/src/storage/extrinsicModuleName.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ExtrinsicModuleName } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' -import { Cache } from '../utils/cache' - -export const createExtrinsicModuleName = ( - block: CtxBlock, - id: string, - props: Partial = {}, -): ExtrinsicModuleName => { - const blockNumber = getBlockNumber(block) - return new ExtrinsicModuleName({ - id: id, - name: '', - createdAt: blockNumber, - ...props, - }) -} - -export const getOrCreateExtrinsicModuleName = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): ExtrinsicModuleName => { - const extrinsicModuleName = cache.extrinsicModuleNames.get(id) - - if (!extrinsicModuleName) return createExtrinsicModuleName(block, id, props) - - return extrinsicModuleName -} diff --git a/indexers/consensus-squid/src/storage/extrinsicName.ts b/indexers/consensus-squid/src/storage/extrinsicName.ts new file mode 100644 index 000000000..302587bef --- /dev/null +++ b/indexers/consensus-squid/src/storage/extrinsicName.ts @@ -0,0 +1,39 @@ +import { ExtrinsicName } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' +import { getOrCreateModule } from './module' + +export const createExtrinsicName = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): ExtrinsicName => { + const [moduleId, name] = splitModuleAndId(id) + const blockNumber = getBlockNumber(block) + return new ExtrinsicName({ + id: stringUID(id), + moduleId, + name, + count: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateExtrinsicName = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): ExtrinsicName => { + const module = getOrCreateModule(cache, block, id) + cache.modules.set(module.id, module) + cache.isModified = true + + const extrinsicModuleName = cache.extrinsicNames.get(stringUID(id)) + + if (!extrinsicModuleName) return createExtrinsicName(block, id) + + return extrinsicModuleName +} diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts index 7c735ba99..606b73cc5 100644 --- a/indexers/consensus-squid/src/storage/index.ts +++ b/indexers/consensus-squid/src/storage/index.ts @@ -2,7 +2,8 @@ export * from './account' export * from './block' export * from './call' export * from './event' -export * from './eventModuleName' +export * from './eventName' export * from './extrinsic' -export * from './extrinsicModuleName' +export * from './extrinsicName' export * from './log' +export * from './module' diff --git a/indexers/consensus-squid/src/storage/module.ts b/indexers/consensus-squid/src/storage/module.ts new file mode 100644 index 000000000..90ca34648 --- /dev/null +++ b/indexers/consensus-squid/src/storage/module.ts @@ -0,0 +1,34 @@ +import { Module } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, splitModuleAndId, stringUID } from '../utils' +import { Cache } from '../utils/cache' + +export const createModule = ( + block: CtxBlock, + name: string, + props: Partial = {}, +): Module => { + const blockNumber = getBlockNumber(block) + return new Module({ + id: stringUID(name), + name, + extrinsicCount: 0, + eventCount: 0, + createdAt: blockNumber, + ...props, + }) +} + +export const getOrCreateModule = ( + cache: Cache, + block: CtxBlock, + eventOrCall: string, + props: Partial = {}, +): Module => { + const [moduleId, name] = splitModuleAndId(eventOrCall) + const moduleName = cache.modules.get(stringUID(name)) + + if (!moduleName) return createModule(block, name, props) + + return moduleName +} diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts index e67ed7027..412718fc5 100644 --- a/indexers/consensus-squid/src/utils/cache.ts +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -5,16 +5,18 @@ import { Block, Call, Event, - EventModuleName, + EventName, Extrinsic, - ExtrinsicModuleName, + ExtrinsicName, Log, + Module, } from '../model' import type { Ctx } from '../processor' export type PermanentCache = { - extrinsicModuleNames: Map - eventModuleNames: Map + modules: Map + eventNames: Map + extrinsicNames: Map accounts: Map } @@ -34,8 +36,9 @@ type CacheManager = { export type Cache = PermanentCache & TemporaryCache & CacheManager export const initPermanentCache: PermanentCache = { - extrinsicModuleNames: new Map(), - eventModuleNames: new Map(), + modules: new Map(), + eventNames: new Map(), + extrinsicNames: new Map(), accounts: new Map(), } @@ -58,23 +61,26 @@ export const initCache: Cache = { } export const load = async (ctx: Ctx): Promise => { - const [extrinsicModuleNames, eventModuleNames, accounts] = await Promise.all([ - ctx.store.find(ExtrinsicModuleName), - ctx.store.find(EventModuleName), + const [modules, eventNames, extrinsicNames, accounts] = await Promise.all([ + ctx.store.find(Module), + ctx.store.find(EventName), + ctx.store.find(ExtrinsicName), ctx.store.find(Account), ]) console.log( '\x1b[32mLoaded in cache:\x1b[0m', - extrinsicModuleNames.length + ' extrinsicModuleNames, ', - eventModuleNames.length + ' eventModuleNames, ', + modules.length + ' modules, ', + eventNames.length + ' eventNames, ', + extrinsicNames.length + ' extrinsicNames, ', accounts.length + ' accounts', ) return { ...initCache, - extrinsicModuleNames: new Map(extrinsicModuleNames.map((e) => [e.id, e])), - eventModuleNames: new Map(eventModuleNames.map((e) => [e.id, e])), + modules: new Map(modules.map((m) => [m.id, m])), + eventNames: new Map(eventNames.map((e) => [e.id, e])), + extrinsicNames: new Map(extrinsicNames.map((e) => [e.id, e])), accounts: new Map(accounts.map((a) => [a.id, a])), } } @@ -97,8 +103,9 @@ export const save = async (ctx: Ctx, cache: Cache) => { // If the cache is not modified, skip saving if (!cache.isModified) return - let logPerm = logEntry('eventModuleNames', cache.eventModuleNames) - logPerm += logEntry('extrinsicModuleNames', cache.extrinsicModuleNames) + let logPerm = logEntry('modules', cache.modules) + logPerm += logEntry('eventNames', cache.eventNames) + logPerm += logEntry('extrinsicNames', cache.extrinsicNames) logPerm += logEntry('accounts', cache.accounts) let logTemp = logEntry('blocks', cache.blocks) diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts index d614df4b9..3f2ed48dc 100644 --- a/indexers/consensus-squid/src/utils/index.ts +++ b/indexers/consensus-squid/src/utils/index.ts @@ -24,28 +24,16 @@ export const getCallSigner = ( } } -export const appendOrArray = (arr: T[] | undefined, item: T): T[] => - arr ? [...arr, item] : [item] - export const getBlockNumber = (block: CtxBlock): number => block.header.height export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) -export const domainUID = (domainId: number): string => `${domainId}` - -export const operatorUID = (operatorId: number): string => `${operatorId}` - -export const nominatorUID = (operatorId: number, account: string): string => - `${operatorId}-${account}` - -export const bundleUID = ( - domainId: number | string, - domainBlockHeight: number | string, - domainBlockBundleIndex: number | string, -): string => `${domainId}-${domainBlockHeight}-${domainBlockBundleIndex}` +export const splitModuleAndId = (extrinsicName: string): [string, string] => { + const [module, call] = extrinsicName.split('.') + return [module, call] +} -export const blockUID = (domainId: number | string, blockNumber: number | string): string => - `${domainId}-${blockNumber}` +export const stringUID = (id: string): string => id.toLowerCase() export const logBlock = (blocks: CtxBlock[]): void => { const from = getBlockNumber(blocks[0]) From c202e91ea186222e67710d9c7de0107eb8ed47f5 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:49:47 -0400 Subject: [PATCH 28/42] update migration and metadata --- ...09403174-Data.js => 1724212048192-Data.js} | 20 ++++++----- indexers/consensus-squid/schema.graphql | 3 ++ .../consensus-squid/src/events/account.ts | 10 +++++- indexers/consensus-squid/src/events/index.ts | 12 ++++++- .../consensus-squid/src/extrinsics/index.ts | 5 +++ indexers/consensus-squid/src/storage/event.ts | 1 + .../consensus-squid/src/storage/extrinsic.ts | 1 + indexers/consensus-squid/src/storage/index.ts | 1 + .../consensus-squid/src/storage/transfer.ts | 34 +++++++++++++++++++ indexers/consensus-squid/src/utils/cache.ts | 8 +++++ .../consensus/tables/public_event.yaml | 9 ++--- ...odule_name.yaml => public_event_name.yaml} | 5 ++- .../consensus/tables/public_extrinsic.yaml | 17 +++++----- ...e_name.yaml => public_extrinsic_name.yaml} | 5 ++- .../consensus/tables/public_metadata.yaml | 17 ++++++++++ .../consensus/tables/public_module.yaml | 15 ++++++++ .../consensus/tables/public_transfer.yaml | 16 +++++++++ .../tables/squid_processor_hot_block.yaml | 3 -- .../squid_processor_hot_change_log.yaml | 3 -- .../databases/consensus/tables/tables.yaml | 7 ++-- ...06760546-Data.js => 1724212048198-Data.js} | 4 +-- ...06760551-Data.js => 1724212048205-Data.js} | 4 +-- 22 files changed, 164 insertions(+), 36 deletions(-) rename indexers/consensus-squid/db/migrations/{1724209403174-Data.js => 1724212048192-Data.js} (88%) create mode 100644 indexers/consensus-squid/src/storage/transfer.ts rename indexers/db/metadata/databases/consensus/tables/{public_event_module_name.yaml => public_event_name.yaml} (66%) rename indexers/db/metadata/databases/consensus/tables/{public_extrinsic_module_name.yaml => public_extrinsic_name.yaml} (65%) create mode 100644 indexers/db/metadata/databases/consensus/tables/public_metadata.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_module.yaml create mode 100644 indexers/db/metadata/databases/consensus/tables/public_transfer.yaml delete mode 100644 indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml delete mode 100644 indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml rename indexers/leaderboard-squid/db/migrations/{1724206760546-Data.js => 1724212048198-Data.js} (99%) rename indexers/staking-squid/db/migrations/{1724206760551-Data.js => 1724212048205-Data.js} (99%) diff --git a/indexers/consensus-squid/db/migrations/1724209403174-Data.js b/indexers/consensus-squid/db/migrations/1724212048192-Data.js similarity index 88% rename from indexers/consensus-squid/db/migrations/1724209403174-Data.js rename to indexers/consensus-squid/db/migrations/1724212048192-Data.js index 1d044e654..956cb3cc1 100644 --- a/indexers/consensus-squid/db/migrations/1724209403174-Data.js +++ b/indexers/consensus-squid/db/migrations/1724212048192-Data.js @@ -1,15 +1,15 @@ -module.exports = class Data1724209403174 { - name = 'Data1724209403174' +module.exports = class Data1724212048192 { + name = 'Data1724212048192' async up(db) { - await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_620a549dbcb1fff62ea85695ca" ON "module" ("name") `) await db.query(`CREATE INDEX "IDX_aac8e16583153278c82c899ab8" ON "module" ("created_at") `) - await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_7b282ebcbaa791f6d66114d98e" ON "extrinsic_name" ("module_id") `) await db.query(`CREATE INDEX "IDX_ce36c0304a5d68c15e02d71314" ON "extrinsic_name" ("name") `) await db.query(`CREATE INDEX "IDX_bae4551dd1315a2d67413b3890" ON "extrinsic_name" ("created_at") `) - await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_04b26a4bd014a96a4dce111831" ON "event_name" ("module_id") `) await db.query(`CREATE INDEX "IDX_8cc9a89327e353743cdbdeaf62" ON "event_name" ("name") `) await db.query(`CREATE INDEX "IDX_308f89b7bd77129d674c746b9f" ON "event_name" ("created_at") `) @@ -23,7 +23,7 @@ module.exports = class Data1724209403174 { await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "timestamp" numeric NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) @@ -33,18 +33,20 @@ module.exports = class Data1724209403174 { await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) await db.query(`CREATE INDEX "IDX_fc33c4502a5338a540862a4438" ON "block" ("account_id") `) - await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "pos" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "args" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "args" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) await db.query(`CREATE INDEX "IDX_6292b3c295f2d9478678eac725" ON "extrinsic" ("account_id") `) await db.query(`CREATE INDEX "IDX_29ac1ee135f61e5f2e476d3e22" ON "extrinsic" ("signature") `) await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) + await db.query(`CREATE INDEX "IDX_398d967b32b6d5fd121a7f6dc9" ON "extrinsic" ("block_height") `) await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) + await db.query(`CREATE INDEX "IDX_f0ad922cb716d6df1e08f1835c" ON "event" ("block_height") `) await db.query(`CREATE INDEX "IDX_129efedcb305c80256db2d57a5" ON "event" ("extrinsic_id") `) await db.query(`CREATE INDEX "IDX_83cf1bd59aa4521ed882fa5145" ON "event" ("call_id") `) await db.query(`CREATE INDEX "IDX_f0e0f3ea08224cc8c0ef1c7ae8" ON "event" ("created_at") `) @@ -97,12 +99,14 @@ module.exports = class Data1724209403174 { await db.query(`DROP INDEX "public"."IDX_6292b3c295f2d9478678eac725"`) await db.query(`DROP INDEX "public"."IDX_29ac1ee135f61e5f2e476d3e22"`) await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) + await db.query(`DROP INDEX "public"."IDX_398d967b32b6d5fd121a7f6dc9"`) await db.query(`DROP INDEX "public"."IDX_6e232918078798b1fade21dcf8"`) await db.query(`DROP INDEX "public"."IDX_b09d3ab32bef80d2e4bf48cdac"`) await db.query(`DROP TABLE "event"`) await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) await db.query(`DROP INDEX "public"."IDX_2b0d35d675c4f99751855c4502"`) + await db.query(`DROP INDEX "public"."IDX_f0ad922cb716d6df1e08f1835c"`) await db.query(`DROP INDEX "public"."IDX_129efedcb305c80256db2d57a5"`) await db.query(`DROP INDEX "public"."IDX_83cf1bd59aa4521ed882fa5145"`) await db.query(`DROP INDEX "public"."IDX_f0e0f3ea08224cc8c0ef1c7ae8"`) diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index deb2f5256..be459801d 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -47,6 +47,7 @@ type Transfer @entity { from: String! @index to: String! @index value: BigInt! + fee: BigInt! timestamp: BigInt! @index createdAt: Int! @index } @@ -80,6 +81,7 @@ type Extrinsic @entity { fee: BigInt! success: Boolean! blockId: String! @index + blockHeight: BigInt! @index pos: Int! timestamp: DateTime! @index args: String! @@ -95,6 +97,7 @@ type Event @entity { pos: Int! args: String! blockId: String! @index + blockHeight: BigInt! @index extrinsicId: String! @index callId: String! @index createdAt: Int! @index diff --git a/indexers/consensus-squid/src/events/account.ts b/indexers/consensus-squid/src/events/account.ts index 2180324f4..0316fd60c 100644 --- a/indexers/consensus-squid/src/events/account.ts +++ b/indexers/consensus-squid/src/events/account.ts @@ -1,5 +1,5 @@ import type { CtxBlock, CtxEvent } from '../processor' -import { getOrCreateAccount } from '../storage/account' +import { getOrCreateAccount, getOrCreateTransfer } from '../storage' import { hexToAccount } from '../utils' import { Cache } from '../utils/cache' @@ -12,6 +12,14 @@ export function processTransferEvent(cache: Cache, block: CtxBlock, event: CtxEv const toAccount = getOrCreateAccount(cache, block, to) cache.accounts.set(fromAccount.id, fromAccount) cache.accounts.set(toAccount.id, toAccount) + + const transfer = getOrCreateTransfer(cache, block, event.id + '-from', { + from, + to, + value: amount, + }) + cache.transfers.set(transfer.id, transfer) + cache.isModified = true return cache diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 47011fe85..230c153d9 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,7 +1,9 @@ import type { ApiPromise } from '@autonomys/auto-utils' import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateEvent, getOrCreateEventName } from '../storage' +import { events } from '../types' import { Cache } from '../utils/cache' +import { processTransferEvent } from './account' export async function processEvents( cache: Cache, @@ -9,9 +11,14 @@ export async function processEvents( block: CtxBlock, extrinsic: CtxExtrinsic, ) { - for (let event of extrinsic.events) { + for (let [index, event] of extrinsic.events.entries()) { const _event = getOrCreateEvent(cache, block, event.id, { + indexInBlock: index, name: event.name, + args: JSON.stringify(extrinsic.call?.args ?? {}), + extrinsicId: extrinsic.id, + blockHeight: BigInt(block.header.height ?? 0), + blockId: block.header.id, }) cache.events.set(_event.id, _event) cache.isModified = true @@ -34,6 +41,9 @@ async function processEvent( cache.isModified = true switch (event.name) { + case events.balances.transfer.name: + return processTransferEvent(cache, block, event) + default: return cache } diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 3863b0e85..909c70e92 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -2,6 +2,7 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { processEvents } from '../events' import type { CtxBlock, CtxExtrinsic } from '../processor' import { getOrCreateExtrinsic, getOrCreateExtrinsicName } from '../storage' +import { getCallSigner } from '../utils' import { Cache } from '../utils/cache' export async function processExtrinsics( @@ -14,6 +15,10 @@ export async function processExtrinsics( const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { hash: extrinsic.hash, indexInBlock: index, + name: extrinsic.call?.name ?? '', + blockId: block.header.id, + blockHeight: BigInt(block.header.height ?? 0), + args: JSON.stringify(extrinsic.call?.args ?? {}), }) cache.extrinsics.set(_extrinsic.id, _extrinsic) cache.isModified = true diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts index e4aa29195..44cd73347 100644 --- a/indexers/consensus-squid/src/storage/event.ts +++ b/indexers/consensus-squid/src/storage/event.ts @@ -14,6 +14,7 @@ export const createEvent = (block: CtxBlock, id: string, props: Partial = pos: props.pos ?? 0, args: props.args ?? '', blockId: props.blockId ?? '', + blockHeight: props.blockHeight ?? BigInt(0), extrinsicId: props.extrinsicId ?? '', callId: props.callId ?? '', createdAt: blockNumber, diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts index 528de95f6..05cad51cf 100644 --- a/indexers/consensus-squid/src/storage/extrinsic.ts +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -22,6 +22,7 @@ export const createExtrinsic = ( fee: props.fee ?? BigInt(0), success: props.success ?? false, blockId: props.blockId ?? '', + blockHeight: props.blockHeight ?? BigInt(0), pos: props.pos ?? 0, timestamp: props.timestamp ?? new Date(), args: props.args ?? '', diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts index 606b73cc5..8e54b282c 100644 --- a/indexers/consensus-squid/src/storage/index.ts +++ b/indexers/consensus-squid/src/storage/index.ts @@ -7,3 +7,4 @@ export * from './extrinsic' export * from './extrinsicName' export * from './log' export * from './module' +export * from './transfer' diff --git a/indexers/consensus-squid/src/storage/transfer.ts b/indexers/consensus-squid/src/storage/transfer.ts new file mode 100644 index 000000000..ebd42dbbf --- /dev/null +++ b/indexers/consensus-squid/src/storage/transfer.ts @@ -0,0 +1,34 @@ +import { Transfer } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' + +export const createTransfer = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const blockNumber = getBlockNumber(block) + return new Transfer({ + id: id, + from: props.from ?? '', + to: props.to ?? '', + value: props.value ?? BigInt(0), + fee: props.fee ?? BigInt(0), + timestamp: props.timestamp ?? BigInt(0), + createdAt: blockNumber, + }) +} + +export const getOrCreateTransfer = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const transfer = cache.transfers.get(id) + + if (!transfer) return createTransfer(block, id, props) + + return transfer +} diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts index 412718fc5..07d90ff73 100644 --- a/indexers/consensus-squid/src/utils/cache.ts +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -10,6 +10,7 @@ import { ExtrinsicName, Log, Module, + Transfer, } from '../model' import type { Ctx } from '../processor' @@ -27,6 +28,8 @@ export type TemporaryCache = { events: Map calls: Map logs: Map + + transfers: Map } type CacheManager = { @@ -48,6 +51,7 @@ export const initTemporaryCache: TemporaryCache = { events: new Map(), calls: new Map(), logs: new Map(), + transfers: new Map(), } export const initCacheManager: CacheManager = { @@ -113,6 +117,7 @@ export const save = async (ctx: Ctx, cache: Cache) => { logTemp += logEntry('events', cache.events) logTemp += logEntry('calls', cache.calls) logTemp += logEntry('logs', cache.logs) + logTemp += logEntry('transfers', cache.transfers) console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) console.log(' and ', logTemp, '\n') @@ -129,4 +134,7 @@ export const save = async (ctx: Ctx, cache: Cache) => { cache.events.clear() cache.calls.clear() cache.logs.clear() + cache.transfers.clear() + + cache.isModified = false } diff --git a/indexers/db/metadata/databases/consensus/tables/public_event.yaml b/indexers/db/metadata/databases/consensus/tables/public_event.yaml index 5bb373ba0..e98786b33 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_event.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_event.yaml @@ -5,16 +5,17 @@ select_permissions: - role: user permission: columns: - - id - - created_at - - index_in_block - - pos - args + - block_height - block_id - call_id + - created_at - extrinsic_id + - id + - index_in_block - name - phase + - pos - timestamp filter: {} comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_event_name.yaml similarity index 66% rename from indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml rename to indexers/db/metadata/databases/consensus/tables/public_event_name.yaml index 7845919e0..67346f07a 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_event_module_name.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_event_name.yaml @@ -1,12 +1,15 @@ table: - name: event_module_name + name: event_name schema: public select_permissions: - role: user permission: columns: - id + - count - created_at + - module_id - name filter: {} + allow_aggregations: true comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml index e2eca7061..3d8485246 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic.yaml @@ -5,21 +5,22 @@ select_permissions: - role: user permission: columns: - - success - - id - - created_at - - index_in_block - - pos - - fee - - nonce - - tip - account_id - args + - block_height - block_id + - created_at - error + - fee - hash + - id + - index_in_block - name + - nonce + - pos - signature + - success - timestamp + - tip filter: {} comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml similarity index 65% rename from indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml rename to indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml index b994fafac..6ab23ee61 100644 --- a/indexers/db/metadata/databases/consensus/tables/public_extrinsic_module_name.yaml +++ b/indexers/db/metadata/databases/consensus/tables/public_extrinsic_name.yaml @@ -1,12 +1,15 @@ table: - name: extrinsic_module_name + name: extrinsic_name schema: public select_permissions: - role: user permission: columns: - id + - count - created_at + - module_id - name filter: {} + allow_aggregations: true comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml b/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml new file mode 100644 index 000000000..f81ca8ebb --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_metadata.yaml @@ -0,0 +1,17 @@ +table: + name: metadata + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - sort_id + - updated_at + - block_hash + - metadata + - spec_name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_module.yaml b/indexers/db/metadata/databases/consensus/tables/public_module.yaml new file mode 100644 index 000000000..5ca1d7fa7 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_module.yaml @@ -0,0 +1,15 @@ +table: + name: module + schema: public +select_permissions: + - role: user + permission: + columns: + - id + - created_at + - event_count + - extrinsic_count + - name + filter: {} + allow_aggregations: true + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml b/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml new file mode 100644 index 000000000..3d8fca633 --- /dev/null +++ b/indexers/db/metadata/databases/consensus/tables/public_transfer.yaml @@ -0,0 +1,16 @@ +table: + name: transfer + schema: public +select_permissions: + - role: user + permission: + columns: + - created_at + - fee + - from + - id + - timestamp + - to + - value + filter: {} + comment: "" diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml deleted file mode 100644 index 389202054..000000000 --- a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_block.yaml +++ /dev/null @@ -1,3 +0,0 @@ -table: - name: hot_block - schema: squid_processor diff --git a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml b/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml deleted file mode 100644 index 88cbea63f..000000000 --- a/indexers/db/metadata/databases/consensus/tables/squid_processor_hot_change_log.yaml +++ /dev/null @@ -1,3 +0,0 @@ -table: - name: hot_change_log - schema: squid_processor diff --git a/indexers/db/metadata/databases/consensus/tables/tables.yaml b/indexers/db/metadata/databases/consensus/tables/tables.yaml index 4c1879d0c..458371b2b 100644 --- a/indexers/db/metadata/databases/consensus/tables/tables.yaml +++ b/indexers/db/metadata/databases/consensus/tables/tables.yaml @@ -2,8 +2,11 @@ - "!include public_block.yaml" - "!include public_call.yaml" - "!include public_event.yaml" -- "!include public_event_module_name.yaml" +- "!include public_event_name.yaml" - "!include public_extrinsic.yaml" -- "!include public_extrinsic_module_name.yaml" +- "!include public_extrinsic_name.yaml" - "!include public_log.yaml" +- "!include public_metadata.yaml" +- "!include public_module.yaml" +- "!include public_transfer.yaml" - "!include squid_processor_status.yaml" diff --git a/indexers/leaderboard-squid/db/migrations/1724206760546-Data.js b/indexers/leaderboard-squid/db/migrations/1724212048198-Data.js similarity index 99% rename from indexers/leaderboard-squid/db/migrations/1724206760546-Data.js rename to indexers/leaderboard-squid/db/migrations/1724212048198-Data.js index f5896817e..211cf18e4 100644 --- a/indexers/leaderboard-squid/db/migrations/1724206760546-Data.js +++ b/indexers/leaderboard-squid/db/migrations/1724212048198-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724206760546 { - name = 'Data1724206760546' +module.exports = class Data1724212048198 { + name = 'Data1724212048198' async up(db) { await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) diff --git a/indexers/staking-squid/db/migrations/1724206760551-Data.js b/indexers/staking-squid/db/migrations/1724212048205-Data.js similarity index 99% rename from indexers/staking-squid/db/migrations/1724206760551-Data.js rename to indexers/staking-squid/db/migrations/1724212048205-Data.js index 1d1254be1..a33860c69 100644 --- a/indexers/staking-squid/db/migrations/1724206760551-Data.js +++ b/indexers/staking-squid/db/migrations/1724212048205-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724206760551 { - name = 'Data1724206760551' +module.exports = class Data1724212048205 { + name = 'Data1724212048205' async up(db) { await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) From df413fa46831919b5b14878b74d45b5d41f8b0c8 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Wed, 21 Aug 2024 22:19:18 -0400 Subject: [PATCH 29/42] add more block attributes --- ...77861732-Data.js => 1724292890925-Data.js} | 4 +- indexers/consensus-squid/squid.yaml | 4 +- indexers/consensus-squid/src/blocks/index.ts | 21 +++++- indexers/consensus-squid/src/main.ts | 12 +++ indexers/consensus-squid/src/utils/index.ts | 75 ++++++++++++++++++- 5 files changed, 107 insertions(+), 9 deletions(-) rename indexers/consensus-squid/db/migrations/{1724277861732-Data.js => 1724292890925-Data.js} (99%) diff --git a/indexers/consensus-squid/db/migrations/1724277861732-Data.js b/indexers/consensus-squid/db/migrations/1724292890925-Data.js similarity index 99% rename from indexers/consensus-squid/db/migrations/1724277861732-Data.js rename to indexers/consensus-squid/db/migrations/1724292890925-Data.js index b71f4098b..3de4c9bf2 100644 --- a/indexers/consensus-squid/db/migrations/1724277861732-Data.js +++ b/indexers/consensus-squid/db/migrations/1724292890925-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724277861732 { - name = 'Data1724277861732' +module.exports = class Data1724292890925 { + name = 'Data1724292890925' async up(db) { await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml index f32f325b3..5b269c8f3 100644 --- a/indexers/consensus-squid/squid.yaml +++ b/indexers/consensus-squid/squid.yaml @@ -5,9 +5,9 @@ description: Autonomys - Astral - Consensus Indexer build: deploy: env: - HASURA_GRAPHQL_ADMIN_SECRET: "${{ secrets.HASURA_SECRET }}" + HASURA_GRAPHQL_ADMIN_SECRET: '${{ secrets.HASURA_SECRET }}' HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user - HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: "true" + HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: 'true' addons: postgres: hasura: diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index b16119833..a2be08883 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -2,14 +2,27 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { Store } from '@subsquid/typeorm-store' import { processExtrinsics } from '../extrinsics' import type { Ctx, CtxBlock } from '../processor' -import { getOrCreateBlock } from '../storage' -import { logBlock } from '../utils' +import { getOrCreateAccount, getOrCreateBlock } from '../storage' +import { events } from '../types/' +import { solutionRanges } from '../types/subspace/storage' +import { calcSpacePledged, getBlockAuthor, logBlock } from '../utils' import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) logBlock(ctx.blocks) for (let block of ctx.blocks) { + const solutionRang = await solutionRanges.v0.get(block.header) + const spacePledged = solutionRang + ? calcSpacePledged(solutionRang.current) + : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) + const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) + + const address = await getBlockAuthor(block, api) + if (address) { + const account = getOrCreateAccount(cache, block, address) + cache.accounts.set(account.id, account) + } const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), @@ -17,6 +30,10 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { hash: block.header.hash ?? '', parentHash: block.header.parentHash ?? '', specId: block.header.specVersion.toString() ?? '', + spacePledged, + extrinsicsCount: block.extrinsics.length ?? 0, + eventsCount: block.events.length ?? 0, + accountId: address ?? '', }) cache.blocks.set(_block.id, _block) cache.isModified = true diff --git a/indexers/consensus-squid/src/main.ts b/indexers/consensus-squid/src/main.ts index 1dea21441..3de6311ee 100644 --- a/indexers/consensus-squid/src/main.ts +++ b/indexers/consensus-squid/src/main.ts @@ -4,9 +4,21 @@ import { assertNotNull } from '@subsquid/util-internal' import { processBlocks } from './blocks' import { processor } from './processor' +const types = { + Solution: { + public_key: 'AccountId32', + reward_address: 'AccountId32', + }, + SubPreDigest: { + slot: 'u64', + solution: 'Solution', + }, +} + processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const api = await createConnection( assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + { types }, ) await processBlocks(ctx, api) diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts index 3f2ed48dc..04f00dc90 100644 --- a/indexers/consensus-squid/src/utils/index.ts +++ b/indexers/consensus-squid/src/utils/index.ts @@ -1,8 +1,15 @@ -import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { ApiPromise, DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { Struct, u64 } from '@polkadot/types' +import { AccountId32 } from '@polkadot/types/interfaces' import { codec } from '@subsquid/ss58' -import type { Store } from '@subsquid/typeorm-store' -import { decodeHex } from '@subsquid/util-internal-hex' +import { Store } from '@subsquid/typeorm-store' +import { decodeHex, toHex } from '@subsquid/util-internal-hex' import type { CtxBlock, ProcessorContext } from '../processor' +import { digest } from '../types/system/storage' +import { DigestItem_PreRuntime } from '../types/v0' + +const PIECE_SIZE = 1048576n +const MAX_PIECES_IN_SECTOR = 1000n export const hexToAccount = (hex: string): string => { try { @@ -44,3 +51,65 @@ export const logBlock = (blocks: CtxBlock[]): void => { 'to ' + to + ' (' + (to - from) + ' blocks)', ) } + +export const solutionRangeToSectors = (solutionRange: bigint): bigint => { + const MAX_U64 = 2n ** 64n - 1n + const SLOT_PROBABILITY = [1n, 6n] + const RECORD_NUM_CHUNKS = 32768n + const RECORD_NUM_S_BUCKETS = 65536n + + const sectors = + ((MAX_U64 / SLOT_PROBABILITY[1]) * SLOT_PROBABILITY[0]) / + ((MAX_PIECES_IN_SECTOR * RECORD_NUM_CHUNKS) / RECORD_NUM_S_BUCKETS) + + // Take solution range into account + return sectors / solutionRange +} + +export const calcSpacePledged = (solutionRange: bigint): bigint => { + const sectors = solutionRangeToSectors(solutionRange) + + return sectors * MAX_PIECES_IN_SECTOR * PIECE_SIZE +} + +export const calcHistorySize = (segmentsCount: number): bigint => { + const PIECES_IN_SEGMENT = 256n + const segmentsCountBigInt = BigInt(segmentsCount) + + return PIECE_SIZE * PIECES_IN_SEGMENT * segmentsCountBigInt +} + +export const decodeLog = (value: null | Uint8Array | Uint8Array[]) => { + if (!value) return null + + if (Array.isArray(value)) { + return { + engine: value[0].toString(), + data: toHex(value[1]), + } + } + + return { data: toHex(value) } +} + +interface Solution extends Struct { + readonly public_key: AccountId32 + readonly reward_address: AccountId32 +} + +export interface SubPreDigest extends Struct { + readonly slot: u64 + readonly solution: Solution +} + +export const getBlockAuthor = async (block: CtxBlock, api: ApiPromise) => { + if (block.header.height === 0) return // genesis block does not have logs + const storage = (await digest.v0.get(block.header)) ?? digest.v0.getDefault(block.header) + const preRuntimeRaw = storage.logs.find( + (digestItem) => digestItem.__kind === 'PreRuntime', + ) as DigestItem_PreRuntime + if (!preRuntimeRaw) return + + const subPreDigest = api.registry.createType('SubPreDigest', preRuntimeRaw.value[1]) + return (subPreDigest as unknown as SubPreDigest).solution.reward_address.toString() +} From 8729c7e2f5fceeee06a5d8795b657781790a0596 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Thu, 22 Aug 2024 07:48:22 -0400 Subject: [PATCH 30/42] remove module from eventName and ExtrinsicName --- indexers/consensus-squid/src/storage/eventName.ts | 4 ---- indexers/consensus-squid/src/storage/extrinsicName.ts | 4 ---- 2 files changed, 8 deletions(-) diff --git a/indexers/consensus-squid/src/storage/eventName.ts b/indexers/consensus-squid/src/storage/eventName.ts index d5fdca49f..9507b17e3 100644 --- a/indexers/consensus-squid/src/storage/eventName.ts +++ b/indexers/consensus-squid/src/storage/eventName.ts @@ -27,10 +27,6 @@ export const getOrCreateEventName = ( id: string, props: Partial = {}, ): EventName => { - const module = getOrCreateModule(cache, block, id) - cache.modules.set(module.id, module) - cache.isModified = true - const eventModuleName = cache.eventNames.get(stringUID(id)) if (!eventModuleName) return createEventName(block, id, props) diff --git a/indexers/consensus-squid/src/storage/extrinsicName.ts b/indexers/consensus-squid/src/storage/extrinsicName.ts index 302587bef..8f37bade2 100644 --- a/indexers/consensus-squid/src/storage/extrinsicName.ts +++ b/indexers/consensus-squid/src/storage/extrinsicName.ts @@ -27,10 +27,6 @@ export const getOrCreateExtrinsicName = ( id: string, props: Partial = {}, ): ExtrinsicName => { - const module = getOrCreateModule(cache, block, id) - cache.modules.set(module.id, module) - cache.isModified = true - const extrinsicModuleName = cache.extrinsicNames.get(stringUID(id)) if (!extrinsicModuleName) return createExtrinsicName(block, id) From 8364b00e055fb3392f544d6f54648ac099d4ff9d Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Thu, 22 Aug 2024 10:13:23 -0400 Subject: [PATCH 31/42] improve consensus squid --- ...92890925-Data.js => 1724335983470-Data.js} | 56 +++++++++---- indexers/consensus-squid/schema.graphql | 24 +++++- indexers/consensus-squid/squid.yaml | 2 +- indexers/consensus-squid/src/blocks/index.ts | 80 +++++++++++++------ indexers/consensus-squid/src/events/code.ts | 24 ++++++ indexers/consensus-squid/src/events/index.ts | 44 +++++++--- .../consensus-squid/src/extrinsics/index.ts | 64 ++++++++++++--- indexers/consensus-squid/src/storage/block.ts | 5 +- indexers/consensus-squid/src/storage/call.ts | 5 +- indexers/consensus-squid/src/storage/event.ts | 5 +- .../consensus-squid/src/storage/extrinsic.ts | 5 +- indexers/consensus-squid/src/storage/index.ts | 2 + .../consensus-squid/src/storage/logKind.ts | 33 ++++++++ .../consensus-squid/src/storage/metadata.ts | 33 ++++++++ .../consensus-squid/src/storage/transfer.ts | 3 +- indexers/consensus-squid/src/utils/cache.ts | 15 +++- package.json | 51 ------------ 17 files changed, 320 insertions(+), 131 deletions(-) rename indexers/consensus-squid/db/migrations/{1724292890925-Data.js => 1724335983470-Data.js} (71%) create mode 100644 indexers/consensus-squid/src/events/code.ts create mode 100644 indexers/consensus-squid/src/storage/logKind.ts create mode 100644 indexers/consensus-squid/src/storage/metadata.ts delete mode 100644 package.json diff --git a/indexers/consensus-squid/db/migrations/1724292890925-Data.js b/indexers/consensus-squid/db/migrations/1724335983470-Data.js similarity index 71% rename from indexers/consensus-squid/db/migrations/1724292890925-Data.js rename to indexers/consensus-squid/db/migrations/1724335983470-Data.js index 3de4c9bf2..41358bd4b 100644 --- a/indexers/consensus-squid/db/migrations/1724292890925-Data.js +++ b/indexers/consensus-squid/db/migrations/1724335983470-Data.js @@ -1,18 +1,25 @@ -module.exports = class Data1724292890925 { - name = 'Data1724292890925' +module.exports = class Data1724335983470 { + name = 'Data1724335983470' async up(db) { - await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_620a549dbcb1fff62ea85695ca" ON "module" ("name") `) await db.query(`CREATE INDEX "IDX_aac8e16583153278c82c899ab8" ON "module" ("created_at") `) - await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_c16ddff3e95aa2703abc3d5a28" ON "module" ("updated_at") `) + await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_7b282ebcbaa791f6d66114d98e" ON "extrinsic_name" ("module_id") `) await db.query(`CREATE INDEX "IDX_ce36c0304a5d68c15e02d71314" ON "extrinsic_name" ("name") `) await db.query(`CREATE INDEX "IDX_bae4551dd1315a2d67413b3890" ON "extrinsic_name" ("created_at") `) - await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_cc38e78f38c29c0f176d20e8b5" ON "extrinsic_name" ("updated_at") `) + await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_04b26a4bd014a96a4dce111831" ON "event_name" ("module_id") `) await db.query(`CREATE INDEX "IDX_8cc9a89327e353743cdbdeaf62" ON "event_name" ("name") `) await db.query(`CREATE INDEX "IDX_308f89b7bd77129d674c746b9f" ON "event_name" ("created_at") `) + await db.query(`CREATE INDEX "IDX_138702642fef52ba4a89946294" ON "event_name" ("updated_at") `) + await db.query(`CREATE TABLE "log_kind" ("id" character varying NOT NULL, "kind" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_bcc5da35c9fa4e56dda4840b983" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_ce2f3195a2f7faedbab1705f0b" ON "log_kind" ("kind") `) + await db.query(`CREATE INDEX "IDX_4461ddd62e3d675e860adccbfa" ON "log_kind" ("created_at") `) + await db.query(`CREATE INDEX "IDX_a1445134448d50ea2af168cc20" ON "log_kind" ("updated_at") `) await db.query(`CREATE TABLE "metadata" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "block_hash" text NOT NULL, "spec_name" text NOT NULL, "metadata" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_56b22355e89941b9792c04ab176" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_7d87619d6ebb96bef0757436e6" ON "metadata" ("sort_id") `) await db.query(`CREATE INDEX "IDX_579fa06e1ce8b2151d784362c1" ON "metadata" ("block_hash") `) @@ -23,17 +30,19 @@ module.exports = class Data1724292890925 { await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_58367bdb03b7f41ade3b09f26a" ON "transfer" ("date") `) await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) - await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "timestamp" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) - await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) + await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_20d6346bd56643a5262eaddced" ON "block" ("date") `) await db.query(`CREATE INDEX "IDX_fc33c4502a5338a540862a4438" ON "block" ("account_id") `) - await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "args" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) await db.query(`CREATE INDEX "IDX_6292b3c295f2d9478678eac725" ON "extrinsic" ("account_id") `) @@ -41,19 +50,22 @@ module.exports = class Data1724292890925 { await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) await db.query(`CREATE INDEX "IDX_398d967b32b6d5fd121a7f6dc9" ON "extrinsic" ("block_height") `) await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_91c0732a0bf8e06976cf832d34" ON "extrinsic" ("date") `) await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) - await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) await db.query(`CREATE INDEX "IDX_f0ad922cb716d6df1e08f1835c" ON "event" ("block_height") `) await db.query(`CREATE INDEX "IDX_129efedcb305c80256db2d57a5" ON "event" ("extrinsic_id") `) await db.query(`CREATE INDEX "IDX_83cf1bd59aa4521ed882fa5145" ON "event" ("call_id") `) + await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_158ebc26716f3fc2042cc9dd2e" ON "event" ("date") `) await db.query(`CREATE INDEX "IDX_f0e0f3ea08224cc8c0ef1c7ae8" ON "event" ("created_at") `) - await db.query(`CREATE TABLE "call" ("id" character varying NOT NULL, "name" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "success" boolean NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "error" text NOT NULL, "account_id" text NOT NULL, "parent" text NOT NULL, "pos" integer NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_2098af0169792a34f9cfdd39c47" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "call" ("id" character varying NOT NULL, "name" text NOT NULL, "success" boolean NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "error" text NOT NULL, "account_id" text NOT NULL, "parent" text NOT NULL, "pos" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_2098af0169792a34f9cfdd39c47" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_8b212022b7428232091e2f8aa5" ON "call" ("name") `) - await db.query(`CREATE INDEX "IDX_a032945f45cacda2d30f4286df" ON "call" ("timestamp") `) await db.query(`CREATE INDEX "IDX_44040cb9d4a26689b9c8863226" ON "call" ("account_id") `) + await db.query(`CREATE INDEX "IDX_a032945f45cacda2d30f4286df" ON "call" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_81967fe06abefb07692bcc1b59" ON "call" ("date") `) await db.query(`CREATE INDEX "IDX_b06c9b51d1172fba69e828673a" ON "call" ("created_at") `) await db.query(`CREATE TABLE "log" ("id" character varying NOT NULL, "kind" text NOT NULL, "value" text NOT NULL, "block_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_110007d6221b41e46fcada62a9" ON "log" ("kind") `) @@ -65,14 +77,21 @@ module.exports = class Data1724292890925 { await db.query(`DROP TABLE "module"`) await db.query(`DROP INDEX "public"."IDX_620a549dbcb1fff62ea85695ca"`) await db.query(`DROP INDEX "public"."IDX_aac8e16583153278c82c899ab8"`) + await db.query(`DROP INDEX "public"."IDX_c16ddff3e95aa2703abc3d5a28"`) await db.query(`DROP TABLE "extrinsic_name"`) await db.query(`DROP INDEX "public"."IDX_7b282ebcbaa791f6d66114d98e"`) await db.query(`DROP INDEX "public"."IDX_ce36c0304a5d68c15e02d71314"`) await db.query(`DROP INDEX "public"."IDX_bae4551dd1315a2d67413b3890"`) + await db.query(`DROP INDEX "public"."IDX_cc38e78f38c29c0f176d20e8b5"`) await db.query(`DROP TABLE "event_name"`) await db.query(`DROP INDEX "public"."IDX_04b26a4bd014a96a4dce111831"`) await db.query(`DROP INDEX "public"."IDX_8cc9a89327e353743cdbdeaf62"`) await db.query(`DROP INDEX "public"."IDX_308f89b7bd77129d674c746b9f"`) + await db.query(`DROP INDEX "public"."IDX_138702642fef52ba4a89946294"`) + await db.query(`DROP TABLE "log_kind"`) + await db.query(`DROP INDEX "public"."IDX_ce2f3195a2f7faedbab1705f0b"`) + await db.query(`DROP INDEX "public"."IDX_4461ddd62e3d675e860adccbfa"`) + await db.query(`DROP INDEX "public"."IDX_a1445134448d50ea2af168cc20"`) await db.query(`DROP TABLE "metadata"`) await db.query(`DROP INDEX "public"."IDX_7d87619d6ebb96bef0757436e6"`) await db.query(`DROP INDEX "public"."IDX_579fa06e1ce8b2151d784362c1"`) @@ -87,11 +106,13 @@ module.exports = class Data1724292890925 { await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) + await db.query(`DROP INDEX "public"."IDX_58367bdb03b7f41ade3b09f26a"`) await db.query(`DROP INDEX "public"."IDX_086e57d995900e69b54046e257"`) await db.query(`DROP TABLE "block"`) await db.query(`DROP INDEX "public"."IDX_bce676e2b005104ccb768495db"`) - await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) + await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) + await db.query(`DROP INDEX "public"."IDX_20d6346bd56643a5262eaddced"`) await db.query(`DROP INDEX "public"."IDX_fc33c4502a5338a540862a4438"`) await db.query(`DROP TABLE "extrinsic"`) await db.query(`DROP INDEX "public"."IDX_1f45de0713a55049009e8e8127"`) @@ -101,19 +122,22 @@ module.exports = class Data1724292890925 { await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) await db.query(`DROP INDEX "public"."IDX_398d967b32b6d5fd121a7f6dc9"`) await db.query(`DROP INDEX "public"."IDX_6e232918078798b1fade21dcf8"`) + await db.query(`DROP INDEX "public"."IDX_91c0732a0bf8e06976cf832d34"`) await db.query(`DROP INDEX "public"."IDX_b09d3ab32bef80d2e4bf48cdac"`) await db.query(`DROP TABLE "event"`) await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) - await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) await db.query(`DROP INDEX "public"."IDX_2b0d35d675c4f99751855c4502"`) await db.query(`DROP INDEX "public"."IDX_f0ad922cb716d6df1e08f1835c"`) await db.query(`DROP INDEX "public"."IDX_129efedcb305c80256db2d57a5"`) await db.query(`DROP INDEX "public"."IDX_83cf1bd59aa4521ed882fa5145"`) + await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) + await db.query(`DROP INDEX "public"."IDX_158ebc26716f3fc2042cc9dd2e"`) await db.query(`DROP INDEX "public"."IDX_f0e0f3ea08224cc8c0ef1c7ae8"`) await db.query(`DROP TABLE "call"`) await db.query(`DROP INDEX "public"."IDX_8b212022b7428232091e2f8aa5"`) - await db.query(`DROP INDEX "public"."IDX_a032945f45cacda2d30f4286df"`) await db.query(`DROP INDEX "public"."IDX_44040cb9d4a26689b9c8863226"`) + await db.query(`DROP INDEX "public"."IDX_a032945f45cacda2d30f4286df"`) + await db.query(`DROP INDEX "public"."IDX_81967fe06abefb07692bcc1b59"`) await db.query(`DROP INDEX "public"."IDX_b06c9b51d1172fba69e828673a"`) await db.query(`DROP TABLE "log"`) await db.query(`DROP INDEX "public"."IDX_110007d6221b41e46fcada62a9"`) diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index be459801d..7b042b908 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -4,6 +4,7 @@ type Module @entity { extrinsicCount: Int! eventCount: Int! createdAt: Int! @index + updatedAt: Int! @index } type ExtrinsicName @entity { @@ -12,6 +13,7 @@ type ExtrinsicName @entity { name: String! @index count: Int! createdAt: Int! @index + updatedAt: Int! @index } type EventName @entity { @@ -20,6 +22,15 @@ type EventName @entity { name: String! @index count: Int! createdAt: Int! @index + updatedAt: Int! @index +} + +type LogKind @entity { + id: ID! @index + kind: String! @index + count: Int! + createdAt: Int! @index + updatedAt: Int! @index } type Metadata @entity { @@ -49,13 +60,13 @@ type Transfer @entity { value: BigInt! fee: BigInt! timestamp: BigInt! @index + date: DateTime! @index createdAt: Int! @index } type Block @entity { id: ID! @index height: BigInt! @index - timestamp: BigInt! @index hash: String! @index parentHash: String! specId: String! @@ -65,6 +76,8 @@ type Block @entity { blockchainSize: BigInt! extrinsicsCount: Int! eventsCount: Int! + timestamp: BigInt! @index + date: DateTime! @index accountId: String! @index } @@ -83,8 +96,9 @@ type Extrinsic @entity { blockId: String! @index blockHeight: BigInt! @index pos: Int! - timestamp: DateTime! @index args: String! + timestamp: BigInt! @index + date: DateTime! @index createdAt: Int! @index } @@ -92,7 +106,6 @@ type Event @entity { id: ID! @index indexInBlock: Int! name: String! @index - timestamp: DateTime! @index phase: String! pos: Int! args: String! @@ -100,13 +113,14 @@ type Event @entity { blockHeight: BigInt! @index extrinsicId: String! @index callId: String! @index + timestamp: BigInt! @index + date: DateTime! @index createdAt: Int! @index } type Call @entity { id: ID! @index name: String! @index - timestamp: DateTime! @index success: Boolean! args: String! blockId: String! @@ -115,6 +129,8 @@ type Call @entity { accountId: String! @index parent: String! pos: Int! + timestamp: BigInt! @index + date: DateTime! @index createdAt: Int! @index } diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml index 5b269c8f3..8ef261cdc 100644 --- a/indexers/consensus-squid/squid.yaml +++ b/indexers/consensus-squid/squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: consensus-squid -version: 1 +version: 3 description: Autonomys - Astral - Consensus Indexer build: deploy: diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index a2be08883..8948c6c4b 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -2,41 +2,71 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { Store } from '@subsquid/typeorm-store' import { processExtrinsics } from '../extrinsics' import type { Ctx, CtxBlock } from '../processor' -import { getOrCreateAccount, getOrCreateBlock } from '../storage' +import { + getOrCreateAccount, + getOrCreateBlock, + getOrCreateLog, + getOrCreateLogKind, +} from '../storage' import { events } from '../types/' import { solutionRanges } from '../types/subspace/storage' -import { calcSpacePledged, getBlockAuthor, logBlock } from '../utils' +import { digest } from '../types/system/storage' +import { calcSpacePledged, getBlockAuthor, getBlockNumber, logBlock, stringUID } from '../utils' import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) logBlock(ctx.blocks) for (let block of ctx.blocks) { - const solutionRang = await solutionRanges.v0.get(block.header) - const spacePledged = solutionRang - ? calcSpacePledged(solutionRang.current) - : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) - const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) + try { + const solutionRang = await solutionRanges.v0.get(block.header) + const spacePledged = solutionRang + ? calcSpacePledged(solutionRang.current) + : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) + const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) - const address = await getBlockAuthor(block, api) - if (address) { - const account = getOrCreateAccount(cache, block, address) - cache.accounts.set(account.id, account) + const address = await getBlockAuthor(block, api) + if (address) { + const account = getOrCreateAccount(cache, block, address) + cache.accounts.set(account.id, account) + } + const _block = getOrCreateBlock(cache, block, { + id: block.header.id, + height: BigInt(block.header.height ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), + hash: block.header.hash ?? '', + parentHash: block.header.parentHash ?? '', + specId: block.header.specVersion.toString() ?? '', + spacePledged, + extrinsicsCount: block.extrinsics.length ?? 0, + eventsCount: block.events.length ?? 0, + accountId: address ?? '', + }) + cache.blocks.set(_block.id, _block) + cache.isModified = true + } catch (error) { + console.error('Failed to process block:', error) + } + try { + const _digest = await digest.v0.get(block.header) + if (_digest) { + _digest.logs.forEach((log, index) => { + const logKind = getOrCreateLogKind(cache, block, log.__kind) + logKind.count++ + logKind.updatedAt = getBlockNumber(block) + cache.logKinds.set(logKind.id, logKind) + + const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { + kind: log.__kind, + value: (log as any).value, + blockId: block.header.id, + }) + cache.logs.set(_log.id, _log) + }) + } + } catch (error) { + console.error('Failed to process block:', error) } - const _block = getOrCreateBlock(cache, block, { - id: block.header.id, - height: BigInt(block.header.height ?? 0), - timestamp: BigInt(block.header.timestamp ?? 0), - hash: block.header.hash ?? '', - parentHash: block.header.parentHash ?? '', - specId: block.header.specVersion.toString() ?? '', - spacePledged, - extrinsicsCount: block.extrinsics.length ?? 0, - eventsCount: block.events.length ?? 0, - accountId: address ?? '', - }) - cache.blocks.set(_block.id, _block) - cache.isModified = true cache = await processBlock(cache, api, block) } diff --git a/indexers/consensus-squid/src/events/code.ts b/indexers/consensus-squid/src/events/code.ts new file mode 100644 index 000000000..e8badb6a4 --- /dev/null +++ b/indexers/consensus-squid/src/events/code.ts @@ -0,0 +1,24 @@ +import type { ApiPromise } from '@autonomys/auto-utils' +import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' +import { getOrCreateMetadata } from '../storage' +import { Cache } from '../utils/cache' + +export function processCodeUpdatedEvent( + cache: Cache, + apiAt: ApiPromise, + block: CtxBlock, + extrinsic: CtxExtrinsic, + event: CtxEvent, +) { + console.log('block', block) + const metadataId = block.header._runtime + console.log('metadataId', metadataId) + const metadata = getOrCreateMetadata(cache, block, '') + console.log('metadata', metadata) + + cache.metadata.set(metadata.id, metadata) + + cache.isModified = true + + return cache +} diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 230c153d9..29fba0af2 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,9 +1,11 @@ import type { ApiPromise } from '@autonomys/auto-utils' import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' -import { getOrCreateEvent, getOrCreateEventName } from '../storage' +import { getOrCreateEvent, getOrCreateEventName, getOrCreateModule } from '../storage' import { events } from '../types' +import { getBlockNumber } from '../utils' import { Cache } from '../utils/cache' import { processTransferEvent } from './account' +import { processCodeUpdatedEvent } from './code' export async function processEvents( cache: Cache, @@ -12,18 +14,27 @@ export async function processEvents( extrinsic: CtxExtrinsic, ) { for (let [index, event] of extrinsic.events.entries()) { - const _event = getOrCreateEvent(cache, block, event.id, { - indexInBlock: index, - name: event.name, - args: JSON.stringify(extrinsic.call?.args ?? {}), - extrinsicId: extrinsic.id, - blockHeight: BigInt(block.header.height ?? 0), - blockId: block.header.id, - }) - cache.events.set(_event.id, _event) - cache.isModified = true + try { + const _event = getOrCreateEvent(cache, block, event.id, { + indexInBlock: index, + name: event.name, + extrinsicId: extrinsic.id, + blockHeight: BigInt(block.header.height ?? 0), + blockId: block.header.id, + timestamp: BigInt(block.header.timestamp ?? 0), + }) + try { + _event.args = JSON.stringify(extrinsic.call?.args ?? {}) + } catch (error) { + console.error('Failed to process event:', error) + } + cache.events.set(_event.id, _event) + cache.isModified = true - cache = await processEvent(cache, api, block, extrinsic, event) + cache = await processEvent(cache, api, block, extrinsic, event) + } catch (error) { + console.error('Failed to process event:', error) + } } return cache } @@ -35,8 +46,14 @@ async function processEvent( extrinsic: CtxExtrinsic, event: CtxEvent, ) { + const module = getOrCreateModule(cache, block, event.name) + module.eventCount++ + module.updatedAt = getBlockNumber(block) + cache.modules.set(module.id, module) + const eventName = getOrCreateEventName(cache, block, event.name) eventName.count++ + eventName.updatedAt = getBlockNumber(block) cache.eventNames.set(eventName.id, eventName) cache.isModified = true @@ -44,6 +61,9 @@ async function processEvent( case events.balances.transfer.name: return processTransferEvent(cache, block, event) + case events.system.codeUpdated.name: + return processCodeUpdatedEvent(cache, api, block, extrinsic, event) + default: return cache } diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 909c70e92..691c3be6a 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -1,8 +1,13 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { processEvents } from '../events' import type { CtxBlock, CtxExtrinsic } from '../processor' -import { getOrCreateExtrinsic, getOrCreateExtrinsicName } from '../storage' -import { getCallSigner } from '../utils' +import { + getOrCreateCall, + getOrCreateExtrinsic, + getOrCreateExtrinsicName, + getOrCreateModule, +} from '../storage' +import { getBlockNumber } from '../utils' import { Cache } from '../utils/cache' export async function processExtrinsics( @@ -12,16 +17,45 @@ export async function processExtrinsics( extrinsics: CtxExtrinsic[], ) { for (let [index, extrinsic] of extrinsics.entries()) { - const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { - hash: extrinsic.hash, - indexInBlock: index, - name: extrinsic.call?.name ?? '', - blockId: block.header.id, - blockHeight: BigInt(block.header.height ?? 0), - args: JSON.stringify(extrinsic.call?.args ?? {}), - }) - cache.extrinsics.set(_extrinsic.id, _extrinsic) - cache.isModified = true + try { + console.log('Processing extrinsic:', extrinsic.id) + console.log('extrinsic:', extrinsic) + console.log('extrinsic.call:', extrinsic.call) + const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { + hash: extrinsic.hash, + indexInBlock: index, + name: extrinsic.call?.name ?? '', + // tip: extrinsic.tip ?? BigInt(0), + fee: extrinsic.fee ?? BigInt(0), + success: extrinsic.success, + blockId: block.header.id, + timestamp: BigInt(block.header.timestamp ?? 0), + blockHeight: BigInt(block.header.height ?? 0), + }) + try { + _extrinsic.args = JSON.stringify(extrinsic.call?.args ?? {}) + } catch (error) { + console.error('Failed to process extrinsic:', error) + } + cache.extrinsics.set(_extrinsic.id, _extrinsic) + + if (extrinsic.call) { + const _call = getOrCreateCall(cache, block, extrinsic.call.id, { + name: extrinsic.call.name, + success: extrinsic.success, + args: JSON.stringify(extrinsic.call?.args ?? {}), + blockId: block.header.id, + extrinsicId: extrinsic.id, + error: '', + timestamp: BigInt(block.header.timestamp ?? 0), + }) + cache.calls.set(_call.id, _call) + } + + cache.isModified = true + } catch (error) { + console.error('Failed to process extrinsic:', error) + } cache = await processExtrinsic(cache, api, block, extrinsic) } @@ -35,8 +69,14 @@ export async function processExtrinsic( extrinsic: CtxExtrinsic, ) { if (extrinsic.call) { + const module = getOrCreateModule(cache, block, extrinsic.call.name) + module.extrinsicCount++ + module.updatedAt = getBlockNumber(block) + cache.modules.set(module.id, module) + const extrinsicName = getOrCreateExtrinsicName(cache, block, extrinsic.call.name) extrinsicName.count++ + extrinsicName.updatedAt = getBlockNumber(block) cache.extrinsicNames.set(extrinsicName.id, extrinsicName) cache.isModified = true } diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts index ad1fec200..6e987e834 100644 --- a/indexers/consensus-squid/src/storage/block.ts +++ b/indexers/consensus-squid/src/storage/block.ts @@ -1,6 +1,6 @@ import { Block } from '../model' import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getTimestamp } from '../utils' import { Cache } from '../utils/cache' export const createBlock = (block: CtxBlock, props: Partial = {}): Block => { @@ -8,7 +8,6 @@ export const createBlock = (block: CtxBlock, props: Partial = {}): Block return new Block({ id: props.id ?? '', height: props.height ?? BigInt(0), - timestamp: props.timestamp ?? BigInt(0), hash: props.hash ?? '', parentHash: props.parentHash ?? '', specId: props.specId ?? '', @@ -19,6 +18,8 @@ export const createBlock = (block: CtxBlock, props: Partial = {}): Block extrinsicsCount: props.extrinsicsCount ?? 0, eventsCount: props.eventsCount ?? 0, accountId: props.accountId ?? '', + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), ...props, }) } diff --git a/indexers/consensus-squid/src/storage/call.ts b/indexers/consensus-squid/src/storage/call.ts index 0cfc222ad..af5cffb76 100644 --- a/indexers/consensus-squid/src/storage/call.ts +++ b/indexers/consensus-squid/src/storage/call.ts @@ -1,6 +1,6 @@ import { Call } from '../model' import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getTimestamp } from '../utils' import { Cache } from '../utils/cache' export const createCall = (block: CtxBlock, id: string, props: Partial = {}): Call => { @@ -8,7 +8,6 @@ export const createCall = (block: CtxBlock, id: string, props: Partial = { return new Call({ id: id, name: props.name ?? '', - timestamp: props.timestamp ?? new Date(), success: props.success ?? false, args: props.args ?? '', blockId: props.blockId ?? '', @@ -17,6 +16,8 @@ export const createCall = (block: CtxBlock, id: string, props: Partial = { accountId: props.accountId ?? '', parent: props.parent ?? '', pos: props.pos ?? 0, + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), createdAt: blockNumber, ...props, }) diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts index 44cd73347..cd00647a7 100644 --- a/indexers/consensus-squid/src/storage/event.ts +++ b/indexers/consensus-squid/src/storage/event.ts @@ -1,6 +1,6 @@ import { Event } from '../model' import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getTimestamp } from '../utils' import { Cache } from '../utils/cache' export const createEvent = (block: CtxBlock, id: string, props: Partial = {}): Event => { @@ -9,7 +9,6 @@ export const createEvent = (block: CtxBlock, id: string, props: Partial = id: id, indexInBlock: props.indexInBlock ?? 0, name: props.name ?? '', - timestamp: props.timestamp ?? new Date(), phase: props.phase ?? '', pos: props.pos ?? 0, args: props.args ?? '', @@ -17,6 +16,8 @@ export const createEvent = (block: CtxBlock, id: string, props: Partial = blockHeight: props.blockHeight ?? BigInt(0), extrinsicId: props.extrinsicId ?? '', callId: props.callId ?? '', + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), createdAt: blockNumber, ...props, }) diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts index 05cad51cf..e41e75309 100644 --- a/indexers/consensus-squid/src/storage/extrinsic.ts +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -1,6 +1,6 @@ import { Extrinsic } from '../model' import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getTimestamp } from '../utils' import { Cache } from '../utils/cache' export const createExtrinsic = ( @@ -24,8 +24,9 @@ export const createExtrinsic = ( blockId: props.blockId ?? '', blockHeight: props.blockHeight ?? BigInt(0), pos: props.pos ?? 0, - timestamp: props.timestamp ?? new Date(), args: props.args ?? '', + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), createdAt: blockNumber, ...props, }) diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts index 8e54b282c..bf92355e1 100644 --- a/indexers/consensus-squid/src/storage/index.ts +++ b/indexers/consensus-squid/src/storage/index.ts @@ -6,5 +6,7 @@ export * from './eventName' export * from './extrinsic' export * from './extrinsicName' export * from './log' +export * from './logKind' +export * from './metadata' export * from './module' export * from './transfer' diff --git a/indexers/consensus-squid/src/storage/logKind.ts b/indexers/consensus-squid/src/storage/logKind.ts new file mode 100644 index 000000000..1dc9acd2d --- /dev/null +++ b/indexers/consensus-squid/src/storage/logKind.ts @@ -0,0 +1,33 @@ +import { LogKind } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, stringUID } from '../utils' +import { Cache } from '../utils/cache' + +export const createLogKind = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): LogKind => { + const blockNumber = getBlockNumber(block) + return new LogKind({ + id: stringUID(id), + kind: props.kind ?? '', + count: props.count ?? 0, + createdAt: blockNumber, + updatedAt: blockNumber, + ...props, + }) +} + +export const getOrCreateLogKind = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): LogKind => { + const logKind = cache.logKinds.get(stringUID(id)) + + if (!logKind) return createLogKind(block, id, props) + + return logKind +} diff --git a/indexers/consensus-squid/src/storage/metadata.ts b/indexers/consensus-squid/src/storage/metadata.ts new file mode 100644 index 000000000..39e9ec133 --- /dev/null +++ b/indexers/consensus-squid/src/storage/metadata.ts @@ -0,0 +1,33 @@ +import { Metadata } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, stringUID } from '../utils' +import { Cache } from '../utils/cache' + +export const createMetadata = ( + block: CtxBlock, + metadataId: string, + props: Partial, +): Metadata => + new Metadata({ + id: stringUID(metadataId), + sortId: typeof metadataId === 'string' ? parseInt(metadataId) : metadataId, + blockHash: '', + specName: '', + metadata: '', + ...props, + createdAt: getBlockNumber(block), + updatedAt: getBlockNumber(block), + }) + +export const getOrCreateMetadata = ( + cache: Cache, + block: CtxBlock, + metadataId: string, + props: Partial = {}, +): Metadata => { + const metadata = cache.metadata.get(stringUID(metadataId)) + + if (!metadata) return createMetadata(block, metadataId, props) + + return metadata +} diff --git a/indexers/consensus-squid/src/storage/transfer.ts b/indexers/consensus-squid/src/storage/transfer.ts index ebd42dbbf..9371ad02f 100644 --- a/indexers/consensus-squid/src/storage/transfer.ts +++ b/indexers/consensus-squid/src/storage/transfer.ts @@ -1,6 +1,6 @@ import { Transfer } from '../model' import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getTimestamp } from '../utils' import { Cache } from '../utils/cache' export const createTransfer = ( @@ -16,6 +16,7 @@ export const createTransfer = ( value: props.value ?? BigInt(0), fee: props.fee ?? BigInt(0), timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), createdAt: blockNumber, }) } diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts index 07d90ff73..33b4cef56 100644 --- a/indexers/consensus-squid/src/utils/cache.ts +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -9,6 +9,8 @@ import { Extrinsic, ExtrinsicName, Log, + LogKind, + Metadata, Module, Transfer, } from '../model' @@ -19,6 +21,8 @@ export type PermanentCache = { eventNames: Map extrinsicNames: Map + metadata: Map + accounts: Map } @@ -28,6 +32,7 @@ export type TemporaryCache = { events: Map calls: Map logs: Map + logKinds: Map transfers: Map } @@ -42,6 +47,7 @@ export const initPermanentCache: PermanentCache = { modules: new Map(), eventNames: new Map(), extrinsicNames: new Map(), + metadata: new Map(), accounts: new Map(), } @@ -51,6 +57,7 @@ export const initTemporaryCache: TemporaryCache = { events: new Map(), calls: new Map(), logs: new Map(), + logKinds: new Map(), transfers: new Map(), } @@ -65,11 +72,12 @@ export const initCache: Cache = { } export const load = async (ctx: Ctx): Promise => { - const [modules, eventNames, extrinsicNames, accounts] = await Promise.all([ + const [modules, eventNames, extrinsicNames, accounts, metadata] = await Promise.all([ ctx.store.find(Module), ctx.store.find(EventName), ctx.store.find(ExtrinsicName), ctx.store.find(Account), + ctx.store.find(Metadata), ]) console.log( @@ -78,6 +86,7 @@ export const load = async (ctx: Ctx): Promise => { eventNames.length + ' eventNames, ', extrinsicNames.length + ' extrinsicNames, ', accounts.length + ' accounts', + metadata.length + ' metadata', ) return { @@ -86,6 +95,7 @@ export const load = async (ctx: Ctx): Promise => { eventNames: new Map(eventNames.map((e) => [e.id, e])), extrinsicNames: new Map(extrinsicNames.map((e) => [e.id, e])), accounts: new Map(accounts.map((a) => [a.id, a])), + metadata: new Map(metadata.map((m) => [m.id, m])), } } @@ -111,12 +121,14 @@ export const save = async (ctx: Ctx, cache: Cache) => { logPerm += logEntry('eventNames', cache.eventNames) logPerm += logEntry('extrinsicNames', cache.extrinsicNames) logPerm += logEntry('accounts', cache.accounts) + logPerm += logEntry('metadata', cache.metadata) let logTemp = logEntry('blocks', cache.blocks) logTemp += logEntry('extrinsics', cache.extrinsics) logTemp += logEntry('events', cache.events) logTemp += logEntry('calls', cache.calls) logTemp += logEntry('logs', cache.logs) + logTemp += logEntry('logKinds', cache.logKinds) logTemp += logEntry('transfers', cache.transfers) console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) @@ -134,6 +146,7 @@ export const save = async (ctx: Ctx, cache: Cache) => { cache.events.clear() cache.calls.clear() cache.logs.clear() + cache.logKinds.clear() cache.transfers.clear() cache.isModified = false diff --git a/package.json b/package.json deleted file mode 100644 index 47201bce7..000000000 --- a/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "astral", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "private": true, - "repository": { - "type": "git", - "url": "https://github.com/autonomys/astral" - }, - "author": { - "name": "Autonomys", - "url": "https://www.autonomys.xyz" - }, - "bugs": { - "url": "https://github.com/autonomys/astral/issues" - }, - "workspaces": { - "packages": [ - "indexers/db", - "indexers/consensus-squid", - "indexers/leaderboard-squid", - "indexers/staking-squid", - "explorer" - ] - }, - "scripts": { - "up": "docker compose up", - "down": "docker compose down", - "db": "lerna run start --scope=db", - "db:metadata": "lerna run metadata --scope=db", - "explorer:dev": "lerna run dev --scope=explorer", - "explorer:codegen": "lerna run codegen --scope=explorer", - "explorer:build": "lerna run build --scope=explorer", - "explorer:test": "lerna run test --scope=explorer", - "explorer:lint": "lerna run lint --scope=explorer", - "explorer:lint:fix": "lerna run lint:fix --scope=explorer", - "explorer:format": "lerna run format --scope=explorer", - "explorer": "lerna run all --scope=explorer", - "indexers:typegen": "lerna run typegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:codegen": "lerna run codegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:migration": "lerna run migration --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:process": "lerna run process --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers:format": "lerna run format --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", - "indexers": "yarn indexers:typegen && yarn indexers:codegen && yarn indexers:migration && yarn indexers:build && yarn indexers:process" - }, - "devDependencies": { - "lerna": "^8.1.8" - } -} From ba53a3d206175356d47a894feae7af7818dbb137 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Thu, 22 Aug 2024 10:15:44 -0400 Subject: [PATCH 32/42] fix module --- indexers/consensus-squid/src/storage/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indexers/consensus-squid/src/storage/module.ts b/indexers/consensus-squid/src/storage/module.ts index 90ca34648..4411df21f 100644 --- a/indexers/consensus-squid/src/storage/module.ts +++ b/indexers/consensus-squid/src/storage/module.ts @@ -26,7 +26,7 @@ export const getOrCreateModule = ( props: Partial = {}, ): Module => { const [moduleId, name] = splitModuleAndId(eventOrCall) - const moduleName = cache.modules.get(stringUID(name)) + const moduleName = cache.modules.get(stringUID(moduleId)) if (!moduleName) return createModule(block, name, props) From aea57513a2928b4a51393f80d0e07cd10f3a523e Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Thu, 22 Aug 2024 10:43:13 -0400 Subject: [PATCH 33/42] keep improving consensus-squid --- ...35983470-Data.js => 1724337761536-Data.js} | 24 +++-- indexers/consensus-squid/schema.graphql | 6 +- indexers/consensus-squid/squid.yaml | 2 +- indexers/consensus-squid/src/blocks/index.ts | 94 +++++++++---------- indexers/consensus-squid/src/events/index.ts | 5 +- .../consensus-squid/src/extrinsics/index.ts | 12 ++- indexers/consensus-squid/src/storage/block.ts | 2 +- indexers/consensus-squid/src/storage/event.ts | 1 + .../consensus-squid/src/storage/extrinsic.ts | 2 +- indexers/consensus-squid/src/storage/log.ts | 1 + .../consensus-squid/src/storage/module.ts | 4 +- 11 files changed, 83 insertions(+), 70 deletions(-) rename indexers/consensus-squid/db/migrations/{1724335983470-Data.js => 1724337761536-Data.js} (87%) diff --git a/indexers/consensus-squid/db/migrations/1724335983470-Data.js b/indexers/consensus-squid/db/migrations/1724337761536-Data.js similarity index 87% rename from indexers/consensus-squid/db/migrations/1724335983470-Data.js rename to indexers/consensus-squid/db/migrations/1724337761536-Data.js index 41358bd4b..388e4cba2 100644 --- a/indexers/consensus-squid/db/migrations/1724335983470-Data.js +++ b/indexers/consensus-squid/db/migrations/1724337761536-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724335983470 { - name = 'Data1724335983470' +module.exports = class Data1724337761536 { + name = 'Data1724337761536' async up(db) { await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) @@ -36,25 +36,26 @@ module.exports = class Data1724335983470 { await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) await db.query(`CREATE INDEX "IDX_58367bdb03b7f41ade3b09f26a" ON "transfer" ("date") `) await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) - await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "account_id" text NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "owner" text NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) + await db.query(`CREATE INDEX "IDX_9f4b8d83ef6c743c966fd0ea49" ON "block" ("owner") `) await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) await db.query(`CREATE INDEX "IDX_20d6346bd56643a5262eaddced" ON "block" ("date") `) - await db.query(`CREATE INDEX "IDX_fc33c4502a5338a540862a4438" ON "block" ("account_id") `) - await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "account_id" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "signer" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) - await db.query(`CREATE INDEX "IDX_6292b3c295f2d9478678eac725" ON "extrinsic" ("account_id") `) + await db.query(`CREATE INDEX "IDX_001ddf290faf765f9dfd9154d3" ON "extrinsic" ("signer") `) await db.query(`CREATE INDEX "IDX_29ac1ee135f61e5f2e476d3e22" ON "extrinsic" ("signature") `) await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) await db.query(`CREATE INDEX "IDX_398d967b32b6d5fd121a7f6dc9" ON "extrinsic" ("block_height") `) await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) await db.query(`CREATE INDEX "IDX_91c0732a0bf8e06976cf832d34" ON "extrinsic" ("date") `) await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) + await db.query(`CREATE INDEX "IDX_77b76886d64fa0304db94dd4d9" ON "event" ("account_id") `) await db.query(`CREATE INDEX "IDX_f0ad922cb716d6df1e08f1835c" ON "event" ("block_height") `) await db.query(`CREATE INDEX "IDX_129efedcb305c80256db2d57a5" ON "event" ("extrinsic_id") `) await db.query(`CREATE INDEX "IDX_83cf1bd59aa4521ed882fa5145" ON "event" ("call_id") `) @@ -67,9 +68,10 @@ module.exports = class Data1724335983470 { await db.query(`CREATE INDEX "IDX_a032945f45cacda2d30f4286df" ON "call" ("timestamp") `) await db.query(`CREATE INDEX "IDX_81967fe06abefb07692bcc1b59" ON "call" ("date") `) await db.query(`CREATE INDEX "IDX_b06c9b51d1172fba69e828673a" ON "call" ("created_at") `) - await db.query(`CREATE TABLE "log" ("id" character varying NOT NULL, "kind" text NOT NULL, "value" text NOT NULL, "block_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "log" ("id" character varying NOT NULL, "kind" text NOT NULL, "value" text NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_110007d6221b41e46fcada62a9" ON "log" ("kind") `) await db.query(`CREATE INDEX "IDX_7d3f5ac68148194ee7ced3032e" ON "log" ("block_id") `) + await db.query(`CREATE INDEX "IDX_08b9587d9698ee1d046a916483" ON "log" ("account_id") `) await db.query(`CREATE INDEX "IDX_a64ab7c456e914191342cfd215" ON "log" ("created_at") `) } @@ -111,13 +113,13 @@ module.exports = class Data1724335983470 { await db.query(`DROP TABLE "block"`) await db.query(`DROP INDEX "public"."IDX_bce676e2b005104ccb768495db"`) await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) + await db.query(`DROP INDEX "public"."IDX_9f4b8d83ef6c743c966fd0ea49"`) await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) await db.query(`DROP INDEX "public"."IDX_20d6346bd56643a5262eaddced"`) - await db.query(`DROP INDEX "public"."IDX_fc33c4502a5338a540862a4438"`) await db.query(`DROP TABLE "extrinsic"`) await db.query(`DROP INDEX "public"."IDX_1f45de0713a55049009e8e8127"`) await db.query(`DROP INDEX "public"."IDX_86604c0ff42c185b99ee69c718"`) - await db.query(`DROP INDEX "public"."IDX_6292b3c295f2d9478678eac725"`) + await db.query(`DROP INDEX "public"."IDX_001ddf290faf765f9dfd9154d3"`) await db.query(`DROP INDEX "public"."IDX_29ac1ee135f61e5f2e476d3e22"`) await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) await db.query(`DROP INDEX "public"."IDX_398d967b32b6d5fd121a7f6dc9"`) @@ -127,6 +129,7 @@ module.exports = class Data1724335983470 { await db.query(`DROP TABLE "event"`) await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) await db.query(`DROP INDEX "public"."IDX_2b0d35d675c4f99751855c4502"`) + await db.query(`DROP INDEX "public"."IDX_77b76886d64fa0304db94dd4d9"`) await db.query(`DROP INDEX "public"."IDX_f0ad922cb716d6df1e08f1835c"`) await db.query(`DROP INDEX "public"."IDX_129efedcb305c80256db2d57a5"`) await db.query(`DROP INDEX "public"."IDX_83cf1bd59aa4521ed882fa5145"`) @@ -142,6 +145,7 @@ module.exports = class Data1724335983470 { await db.query(`DROP TABLE "log"`) await db.query(`DROP INDEX "public"."IDX_110007d6221b41e46fcada62a9"`) await db.query(`DROP INDEX "public"."IDX_7d3f5ac68148194ee7ced3032e"`) + await db.query(`DROP INDEX "public"."IDX_08b9587d9698ee1d046a916483"`) await db.query(`DROP INDEX "public"."IDX_a64ab7c456e914191342cfd215"`) } } diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index 7b042b908..ed4fe0f70 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -74,11 +74,11 @@ type Block @entity { extrinsicsRoot: String! spacePledged: BigInt! blockchainSize: BigInt! + owner: String! @index extrinsicsCount: Int! eventsCount: Int! timestamp: BigInt! @index date: DateTime! @index - accountId: String! @index } type Extrinsic @entity { @@ -87,7 +87,7 @@ type Extrinsic @entity { indexInBlock: Int! nonce: BigInt! name: String! @index - accountId: String! @index + signer: String! @index signature: String! @index error: String! tip: BigInt! @@ -110,6 +110,7 @@ type Event @entity { pos: Int! args: String! blockId: String! @index + accountId: String! @index blockHeight: BigInt! @index extrinsicId: String! @index callId: String! @index @@ -139,5 +140,6 @@ type Log @entity { kind: String! @index value: String! blockId: String! @index + accountId: String! @index createdAt: Int! @index } diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml index 8ef261cdc..5b269c8f3 100644 --- a/indexers/consensus-squid/squid.yaml +++ b/indexers/consensus-squid/squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: consensus-squid -version: 3 +version: 1 description: Autonomys - Astral - Consensus Indexer build: deploy: diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index 8948c6c4b..4727ba0e3 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -11,69 +11,65 @@ import { import { events } from '../types/' import { solutionRanges } from '../types/subspace/storage' import { digest } from '../types/system/storage' -import { calcSpacePledged, getBlockAuthor, getBlockNumber, logBlock, stringUID } from '../utils' +import { calcSpacePledged, getBlockAuthor, getBlockNumber, logBlock } from '../utils' import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) logBlock(ctx.blocks) for (let block of ctx.blocks) { - try { - const solutionRang = await solutionRanges.v0.get(block.header) - const spacePledged = solutionRang - ? calcSpacePledged(solutionRang.current) - : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) - const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) + const solutionRang = await solutionRanges.v0.get(block.header) + const spacePledged = solutionRang + ? calcSpacePledged(solutionRang.current) + : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) + const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) - const address = await getBlockAuthor(block, api) - if (address) { - const account = getOrCreateAccount(cache, block, address) - cache.accounts.set(account.id, account) - } - const _block = getOrCreateBlock(cache, block, { - id: block.header.id, - height: BigInt(block.header.height ?? 0), - timestamp: BigInt(block.header.timestamp ?? 0), - hash: block.header.hash ?? '', - parentHash: block.header.parentHash ?? '', - specId: block.header.specVersion.toString() ?? '', - spacePledged, - extrinsicsCount: block.extrinsics.length ?? 0, - eventsCount: block.events.length ?? 0, - accountId: address ?? '', - }) - cache.blocks.set(_block.id, _block) - cache.isModified = true - } catch (error) { - console.error('Failed to process block:', error) - } - try { - const _digest = await digest.v0.get(block.header) - if (_digest) { - _digest.logs.forEach((log, index) => { - const logKind = getOrCreateLogKind(cache, block, log.__kind) - logKind.count++ - logKind.updatedAt = getBlockNumber(block) - cache.logKinds.set(logKind.id, logKind) + const owner = await getBlockAuthor(block, api) + if (!owner) throw new Error('Block author not found') + + const account = getOrCreateAccount(cache, block, owner) + cache.accounts.set(account.id, account) + + const _block = getOrCreateBlock(cache, block, { + id: block.header.id, + height: BigInt(block.header.height ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), + hash: block.header.hash ?? '', + parentHash: block.header.parentHash ?? '', + specId: block.header.specVersion.toString() ?? '', + spacePledged, + extrinsicsCount: block.extrinsics.length ?? 0, + eventsCount: block.events.length ?? 0, + owner: owner ?? '', + }) + cache.blocks.set(_block.id, _block) - const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { - kind: log.__kind, - value: (log as any).value, - blockId: block.header.id, - }) - cache.logs.set(_log.id, _log) + const _digest = await digest.v0.get(block.header) + if (_digest) { + _digest.logs.forEach((log, index) => { + const logKind = getOrCreateLogKind(cache, block, log.__kind) + logKind.count++ + logKind.updatedAt = getBlockNumber(block) + cache.logKinds.set(logKind.id, logKind) + + const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { + kind: log.__kind, + value: (log as any).value, + blockId: block.header.id, + accountId: owner ?? '', }) - } - } catch (error) { - console.error('Failed to process block:', error) + cache.logs.set(_log.id, _log) + }) } - cache = await processBlock(cache, api, block) + cache.isModified = true + + cache = await processBlock(cache, api, block, owner) } await save(ctx, cache) } -async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock) { - return await processExtrinsics(cache, api, block, block.extrinsics) +async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock, blockOwner: string) { + return await processExtrinsics(cache, api, block, block.extrinsics, blockOwner) } diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 29fba0af2..bb4dbadf5 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -2,7 +2,7 @@ import type { ApiPromise } from '@autonomys/auto-utils' import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateEvent, getOrCreateEventName, getOrCreateModule } from '../storage' import { events } from '../types' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getCallSigner } from '../utils' import { Cache } from '../utils/cache' import { processTransferEvent } from './account' import { processCodeUpdatedEvent } from './code' @@ -12,6 +12,7 @@ export async function processEvents( api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, + blockOwner: string, ) { for (let [index, event] of extrinsic.events.entries()) { try { @@ -19,6 +20,8 @@ export async function processEvents( indexInBlock: index, name: event.name, extrinsicId: extrinsic.id, + accountId: + extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, blockHeight: BigInt(block.header.height ?? 0), blockId: block.header.id, timestamp: BigInt(block.header.timestamp ?? 0), diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 691c3be6a..5e74f5c97 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -7,7 +7,7 @@ import { getOrCreateExtrinsicName, getOrCreateModule, } from '../storage' -import { getBlockNumber } from '../utils' +import { getBlockNumber, getCallSigner } from '../utils' import { Cache } from '../utils/cache' export async function processExtrinsics( @@ -15,6 +15,7 @@ export async function processExtrinsics( api: ApiPromise, block: CtxBlock, extrinsics: CtxExtrinsic[], + blockOwner: string, ) { for (let [index, extrinsic] of extrinsics.entries()) { try { @@ -29,6 +30,8 @@ export async function processExtrinsics( fee: extrinsic.fee ?? BigInt(0), success: extrinsic.success, blockId: block.header.id, + signer: + extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, timestamp: BigInt(block.header.timestamp ?? 0), blockHeight: BigInt(block.header.height ?? 0), }) @@ -47,6 +50,8 @@ export async function processExtrinsics( blockId: block.header.id, extrinsicId: extrinsic.id, error: '', + accountId: + extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, timestamp: BigInt(block.header.timestamp ?? 0), }) cache.calls.set(_call.id, _call) @@ -57,7 +62,7 @@ export async function processExtrinsics( console.error('Failed to process extrinsic:', error) } - cache = await processExtrinsic(cache, api, block, extrinsic) + cache = await processExtrinsic(cache, api, block, extrinsic, blockOwner) } return cache } @@ -67,6 +72,7 @@ export async function processExtrinsic( api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, + blockOwner: string, ) { if (extrinsic.call) { const module = getOrCreateModule(cache, block, extrinsic.call.name) @@ -83,6 +89,6 @@ export async function processExtrinsic( switch (extrinsic.call?.name) { default: - return await processEvents(cache, api, block, extrinsic) + return await processEvents(cache, api, block, extrinsic, blockOwner) } } diff --git a/indexers/consensus-squid/src/storage/block.ts b/indexers/consensus-squid/src/storage/block.ts index 6e987e834..8ea92bfe9 100644 --- a/indexers/consensus-squid/src/storage/block.ts +++ b/indexers/consensus-squid/src/storage/block.ts @@ -17,7 +17,7 @@ export const createBlock = (block: CtxBlock, props: Partial = {}): Block blockchainSize: props.blockchainSize ?? BigInt(0), extrinsicsCount: props.extrinsicsCount ?? 0, eventsCount: props.eventsCount ?? 0, - accountId: props.accountId ?? '', + owner: props.owner ?? '', timestamp: props.timestamp ?? BigInt(0), date: props.date ?? getTimestamp(block), ...props, diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts index cd00647a7..2c5f532c3 100644 --- a/indexers/consensus-squid/src/storage/event.ts +++ b/indexers/consensus-squid/src/storage/event.ts @@ -13,6 +13,7 @@ export const createEvent = (block: CtxBlock, id: string, props: Partial = pos: props.pos ?? 0, args: props.args ?? '', blockId: props.blockId ?? '', + accountId: props.accountId ?? '', blockHeight: props.blockHeight ?? BigInt(0), extrinsicId: props.extrinsicId ?? '', callId: props.callId ?? '', diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts index e41e75309..3a6257d09 100644 --- a/indexers/consensus-squid/src/storage/extrinsic.ts +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -15,7 +15,7 @@ export const createExtrinsic = ( indexInBlock: props.indexInBlock ?? 0, nonce: props.nonce ?? BigInt(0), name: props.name ?? '', - accountId: props.accountId ?? '', + signer: props.signer ?? '', signature: props.signature ?? '', error: props.error ?? '', tip: props.tip ?? BigInt(0), diff --git a/indexers/consensus-squid/src/storage/log.ts b/indexers/consensus-squid/src/storage/log.ts index 83b601621..b70849786 100644 --- a/indexers/consensus-squid/src/storage/log.ts +++ b/indexers/consensus-squid/src/storage/log.ts @@ -10,6 +10,7 @@ export const createLog = (block: CtxBlock, id: string, props: Partial = {}) kind: props.kind ?? '', value: props.value ?? '', blockId: props.blockId ?? '', + accountId: props.accountId ?? '', createdAt: blockNumber, ...props, }) diff --git a/indexers/consensus-squid/src/storage/module.ts b/indexers/consensus-squid/src/storage/module.ts index 4411df21f..9e3757225 100644 --- a/indexers/consensus-squid/src/storage/module.ts +++ b/indexers/consensus-squid/src/storage/module.ts @@ -25,10 +25,10 @@ export const getOrCreateModule = ( eventOrCall: string, props: Partial = {}, ): Module => { - const [moduleId, name] = splitModuleAndId(eventOrCall) + const [moduleId] = splitModuleAndId(eventOrCall) const moduleName = cache.modules.get(stringUID(moduleId)) - if (!moduleName) return createModule(block, name, props) + if (!moduleName) return createModule(block, moduleId, props) return moduleName } From 79ca891248da1ffbc12c98203d8dce963add92cf Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:48:35 -0400 Subject: [PATCH 34/42] improve consensus squid --- ...37761536-Data.js => 1724341714619-Data.js} | 4 +- indexers/consensus-squid/squid.yaml | 2 +- indexers/consensus-squid/src/blocks/index.ts | 60 ++++++++++++------- indexers/consensus-squid/src/events/index.ts | 3 + .../consensus-squid/src/extrinsics/index.ts | 13 ++-- indexers/consensus-squid/src/utils/index.ts | 44 +++++++++++++- 6 files changed, 94 insertions(+), 32 deletions(-) rename indexers/consensus-squid/db/migrations/{1724337761536-Data.js => 1724341714619-Data.js} (99%) diff --git a/indexers/consensus-squid/db/migrations/1724337761536-Data.js b/indexers/consensus-squid/db/migrations/1724341714619-Data.js similarity index 99% rename from indexers/consensus-squid/db/migrations/1724337761536-Data.js rename to indexers/consensus-squid/db/migrations/1724341714619-Data.js index 388e4cba2..89f0f6abd 100644 --- a/indexers/consensus-squid/db/migrations/1724337761536-Data.js +++ b/indexers/consensus-squid/db/migrations/1724341714619-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724337761536 { - name = 'Data1724337761536' +module.exports = class Data1724341714619 { + name = 'Data1724341714619' async up(db) { await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml index 5b269c8f3..1c51cb9ac 100644 --- a/indexers/consensus-squid/squid.yaml +++ b/indexers/consensus-squid/squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: consensus-squid -version: 1 +version: 5 description: Autonomys - Astral - Consensus Indexer build: deploy: diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index 4727ba0e3..37ea29681 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -8,28 +8,33 @@ import { getOrCreateLog, getOrCreateLogKind, } from '../storage' -import { events } from '../types/' import { solutionRanges } from '../types/subspace/storage' import { digest } from '../types/system/storage' -import { calcSpacePledged, getBlockAuthor, getBlockNumber, logBlock } from '../utils' +import { + calcSpacePledged, + getBlockAuthor, + getBlockNumber, + getHistorySize, + logBlock, +} from '../utils' import { Cache, load, save } from '../utils/cache' export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) logBlock(ctx.blocks) for (let block of ctx.blocks) { + console.log('Processing block:', block.header.id) const solutionRang = await solutionRanges.v0.get(block.header) const spacePledged = solutionRang ? calcSpacePledged(solutionRang.current) : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) - const event = block.events.filter((event) => event.name === events.subspace.farmerVote.name) + const blockchainSize = await getHistorySize(ctx, block, api) const owner = await getBlockAuthor(block, api) - if (!owner) throw new Error('Block author not found') - - const account = getOrCreateAccount(cache, block, owner) - cache.accounts.set(account.id, account) - + if (owner) { + const account = getOrCreateAccount(cache, block, owner) + cache.accounts.set(account.id, account) + } const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), @@ -37,34 +42,43 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { hash: block.header.hash ?? '', parentHash: block.header.parentHash ?? '', specId: block.header.specVersion.toString() ?? '', + stateRoot: (block.header as any)?.stateRoot ?? '', + extrinsicsRoot: (block.header as any)?.extrinsicsRoot ?? '', spacePledged, + blockchainSize, extrinsicsCount: block.extrinsics.length ?? 0, eventsCount: block.events.length ?? 0, owner: owner ?? '', }) cache.blocks.set(_block.id, _block) - const _digest = await digest.v0.get(block.header) - if (_digest) { - _digest.logs.forEach((log, index) => { - const logKind = getOrCreateLogKind(cache, block, log.__kind) - logKind.count++ - logKind.updatedAt = getBlockNumber(block) - cache.logKinds.set(logKind.id, logKind) + try { + const _digest = await digest.v0.get(block.header) + if (_digest) { + _digest.logs.forEach((log, index) => { + const logKind = getOrCreateLogKind(cache, block, log.__kind, { + kind: log.__kind, + }) + logKind.count++ + logKind.updatedAt = getBlockNumber(block) + cache.logKinds.set(logKind.id, logKind) - const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { - kind: log.__kind, - value: (log as any).value, - blockId: block.header.id, - accountId: owner ?? '', + const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { + kind: log.__kind, + value: (log as any).value, + blockId: block.header.id, + accountId: owner ?? '', + }) + cache.logs.set(_log.id, _log) }) - cache.logs.set(_log.id, _log) - }) + } + } catch (error) { + console.error('Failed to process log:', error) } cache.isModified = true - cache = await processBlock(cache, api, block, owner) + cache = await processBlock(cache, api, block, owner ?? '') } await save(ctx, cache) diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index bb4dbadf5..8a307e5c7 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -24,6 +24,9 @@ export async function processEvents( extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, blockHeight: BigInt(block.header.height ?? 0), blockId: block.header.id, + callId: extrinsic.call?.id ?? '', + phase: (extrinsic as any)?.phase ?? BigInt(0), + // pos: Number((extrinsic as any)?.pos ?? 0), timestamp: BigInt(block.header.timestamp ?? 0), }) try { diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 5e74f5c97..334dba3b3 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -19,21 +19,23 @@ export async function processExtrinsics( ) { for (let [index, extrinsic] of extrinsics.entries()) { try { - console.log('Processing extrinsic:', extrinsic.id) - console.log('extrinsic:', extrinsic) - console.log('extrinsic.call:', extrinsic.call) + // console.log('Processing extrinsic:', extrinsic.id) + // console.log('extrinsic:', extrinsic) + // console.log('extrinsic.call:', extrinsic.call) const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { hash: extrinsic.hash, indexInBlock: index, + nonce: BigInt((extrinsic as any).nonce ?? 0), name: extrinsic.call?.name ?? '', - // tip: extrinsic.tip ?? BigInt(0), + // tip: BigInt((extrinsic as any)?.tip ?? 0), fee: extrinsic.fee ?? BigInt(0), success: extrinsic.success, blockId: block.header.id, signer: extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, - timestamp: BigInt(block.header.timestamp ?? 0), blockHeight: BigInt(block.header.height ?? 0), + // pos: Number((extrinsic as any)?.pos ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), }) try { _extrinsic.args = JSON.stringify(extrinsic.call?.args ?? {}) @@ -52,6 +54,7 @@ export async function processExtrinsics( error: '', accountId: extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, + pos: Number((extrinsic as any)?.pos ?? 0), timestamp: BigInt(block.header.timestamp ?? 0), }) cache.calls.set(_call.id, _call) diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts index 04f00dc90..e3afd48b5 100644 --- a/indexers/consensus-squid/src/utils/index.ts +++ b/indexers/consensus-squid/src/utils/index.ts @@ -1,10 +1,12 @@ import { ApiPromise, DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' import { Struct, u64 } from '@polkadot/types' import { AccountId32 } from '@polkadot/types/interfaces' +import { HexSink } from '@subsquid/scale-codec' import { codec } from '@subsquid/ss58' import { Store } from '@subsquid/typeorm-store' import { decodeHex, toHex } from '@subsquid/util-internal-hex' -import type { CtxBlock, ProcessorContext } from '../processor' +import { xxhash128 } from '@subsquid/util-xxhash' +import type { Ctx, CtxBlock, ProcessorContext } from '../processor' import { digest } from '../types/system/storage' import { DigestItem_PreRuntime } from '../types/v0' @@ -113,3 +115,43 @@ export const getBlockAuthor = async (block: CtxBlock, api: ApiPromise) => { const subPreDigest = api.registry.createType('SubPreDigest', preRuntimeRaw.value[1]) return (subPreDigest as unknown as SubPreDigest).solution.reward_address.toString() } + +const getNameHash = (name: string): string => { + const digest = xxhash128().update(name).digest() + const sink = new HexSink() + sink.u128(digest) + const hash = sink.toHex() + return hash +} + +export const getStorageHash = (prefix: string, name: string) => { + return getNameHash(prefix) + getNameHash(name).slice(2) +} + +export const getHistorySize = async (ctx: Ctx, block: CtxBlock, api: ApiPromise) => { + const { client } = ctx._chain + + const storageHash = getStorageHash('Subspace', 'SegmentCommitment') + + const totalSize = (await client.call('state_getStorageSizeAt', [ + storageHash, + block.header.hash, + ])) as number + if (totalSize === 0 || !totalSize) return BigInt(0) + + const keys = (await client.call('state_getKeysPagedAt', [ + storageHash, + 1, + null, + block.header.hash, + ])) as string[] + + const keySize = (await client.call('state_getStorageSizeAt', [ + keys[0], + block.header.hash, + ])) as number + + const segmentsCount = totalSize / keySize + + return calcHistorySize(segmentsCount) +} From 308e156052cdb646ed32fb3e9eedfd6ac47b5055 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:54:53 -0400 Subject: [PATCH 35/42] add accounts squid --- indexers/accounts-squid/.gitignore | 11 + indexers/accounts-squid/.npmrc | 1 + indexers/accounts-squid/.prettierrc | 10 + indexers/accounts-squid/.squidignore | 7 + indexers/accounts-squid/LICENSE | 21 + indexers/accounts-squid/README.md | 194 + indexers/accounts-squid/commands.json | 97 + .../db/migrations/1724677830992-Data.js | 33 + indexers/accounts-squid/gemini3h.jsonl | 5 + .../hasura/hasura_metadata.json | 0 indexers/accounts-squid/package-lock.json | 5167 +++++++++++++++++ indexers/accounts-squid/package.json | 48 + indexers/accounts-squid/schema.graphql | 25 + indexers/accounts-squid/squid.yaml | 35 + indexers/accounts-squid/src/main.ts | 101 + indexers/accounts-squid/src/model/index.ts | 1 + indexers/accounts-squid/src/processor.ts | 75 + .../accounts-squid/src/storage/account.ts | 35 + indexers/accounts-squid/src/storage/index.ts | 3 + .../accounts-squid/src/storage/transfer.ts | 35 + .../src/types/balances/calls.ts | 119 + .../src/types/balances/constants.ts | 59 + .../src/types/balances/events.ts | 312 + .../src/types/balances/storage.ts | 253 + indexers/accounts-squid/src/types/calls.ts | 5 + .../accounts-squid/src/types/constants.ts | 7 + .../accounts-squid/src/types/domains/calls.ts | 278 + .../src/types/domains/constants.ts | 213 + .../src/types/domains/events.ts | 250 + .../src/types/domains/storage.ts | 1226 ++++ indexers/accounts-squid/src/types/events.ts | 7 + indexers/accounts-squid/src/types/index.ts | 8 + .../accounts-squid/src/types/rewards/calls.ts | 16 + .../src/types/rewards/constants.ts | 61 + .../src/types/rewards/events.ts | 30 + .../src/types/rewards/storage.ts | 82 + indexers/accounts-squid/src/types/storage.ts | 7 + .../src/types/subspace/calls.ts | 79 + .../src/types/subspace/constants.ts | 154 + .../src/types/subspace/events.ts | 31 + .../src/types/subspace/storage.ts | 390 ++ indexers/accounts-squid/src/types/support.ts | 142 + .../accounts-squid/src/types/system/calls.ts | 146 + .../src/types/system/constants.ts | 66 + .../accounts-squid/src/types/system/events.ts | 94 + .../src/types/system/storage.ts | 405 ++ .../src/types/transaction-fees/constants.ts | 43 + .../src/types/transaction-fees/events.ts | 54 + .../src/types/transaction-fees/storage.ts | 86 + .../types/transaction-payment/constants.ts | 31 + .../src/types/transaction-payment/events.ts | 18 + .../src/types/transaction-payment/storage.ts | 22 + indexers/accounts-squid/src/types/v0.ts | 3281 +++++++++++ indexers/accounts-squid/src/types/v1.ts | 2706 +++++++++ indexers/accounts-squid/src/types/v3.ts | 205 + indexers/accounts-squid/src/types/v5.ts | 2724 +++++++++ indexers/accounts-squid/src/utils/cache.ts | 104 + indexers/accounts-squid/src/utils/index.ts | 40 + indexers/accounts-squid/src/utils/slack.ts | 77 + indexers/accounts-squid/tsconfig.json | 19 + indexers/accounts-squid/typegen.json | 48 + 61 files changed, 19802 insertions(+) create mode 100644 indexers/accounts-squid/.gitignore create mode 100644 indexers/accounts-squid/.npmrc create mode 100644 indexers/accounts-squid/.prettierrc create mode 100644 indexers/accounts-squid/.squidignore create mode 100644 indexers/accounts-squid/LICENSE create mode 100644 indexers/accounts-squid/README.md create mode 100644 indexers/accounts-squid/commands.json create mode 100644 indexers/accounts-squid/db/migrations/1724677830992-Data.js create mode 100644 indexers/accounts-squid/gemini3h.jsonl create mode 100644 indexers/accounts-squid/hasura/hasura_metadata.json create mode 100644 indexers/accounts-squid/package-lock.json create mode 100644 indexers/accounts-squid/package.json create mode 100644 indexers/accounts-squid/schema.graphql create mode 100644 indexers/accounts-squid/squid.yaml create mode 100644 indexers/accounts-squid/src/main.ts create mode 100644 indexers/accounts-squid/src/model/index.ts create mode 100644 indexers/accounts-squid/src/processor.ts create mode 100644 indexers/accounts-squid/src/storage/account.ts create mode 100644 indexers/accounts-squid/src/storage/index.ts create mode 100644 indexers/accounts-squid/src/storage/transfer.ts create mode 100644 indexers/accounts-squid/src/types/balances/calls.ts create mode 100644 indexers/accounts-squid/src/types/balances/constants.ts create mode 100644 indexers/accounts-squid/src/types/balances/events.ts create mode 100644 indexers/accounts-squid/src/types/balances/storage.ts create mode 100644 indexers/accounts-squid/src/types/calls.ts create mode 100644 indexers/accounts-squid/src/types/constants.ts create mode 100644 indexers/accounts-squid/src/types/domains/calls.ts create mode 100644 indexers/accounts-squid/src/types/domains/constants.ts create mode 100644 indexers/accounts-squid/src/types/domains/events.ts create mode 100644 indexers/accounts-squid/src/types/domains/storage.ts create mode 100644 indexers/accounts-squid/src/types/events.ts create mode 100644 indexers/accounts-squid/src/types/index.ts create mode 100644 indexers/accounts-squid/src/types/rewards/calls.ts create mode 100644 indexers/accounts-squid/src/types/rewards/constants.ts create mode 100644 indexers/accounts-squid/src/types/rewards/events.ts create mode 100644 indexers/accounts-squid/src/types/rewards/storage.ts create mode 100644 indexers/accounts-squid/src/types/storage.ts create mode 100644 indexers/accounts-squid/src/types/subspace/calls.ts create mode 100644 indexers/accounts-squid/src/types/subspace/constants.ts create mode 100644 indexers/accounts-squid/src/types/subspace/events.ts create mode 100644 indexers/accounts-squid/src/types/subspace/storage.ts create mode 100644 indexers/accounts-squid/src/types/support.ts create mode 100644 indexers/accounts-squid/src/types/system/calls.ts create mode 100644 indexers/accounts-squid/src/types/system/constants.ts create mode 100644 indexers/accounts-squid/src/types/system/events.ts create mode 100644 indexers/accounts-squid/src/types/system/storage.ts create mode 100644 indexers/accounts-squid/src/types/transaction-fees/constants.ts create mode 100644 indexers/accounts-squid/src/types/transaction-fees/events.ts create mode 100644 indexers/accounts-squid/src/types/transaction-fees/storage.ts create mode 100644 indexers/accounts-squid/src/types/transaction-payment/constants.ts create mode 100644 indexers/accounts-squid/src/types/transaction-payment/events.ts create mode 100644 indexers/accounts-squid/src/types/transaction-payment/storage.ts create mode 100644 indexers/accounts-squid/src/types/v0.ts create mode 100644 indexers/accounts-squid/src/types/v1.ts create mode 100644 indexers/accounts-squid/src/types/v3.ts create mode 100644 indexers/accounts-squid/src/types/v5.ts create mode 100644 indexers/accounts-squid/src/utils/cache.ts create mode 100644 indexers/accounts-squid/src/utils/index.ts create mode 100644 indexers/accounts-squid/src/utils/slack.ts create mode 100644 indexers/accounts-squid/tsconfig.json create mode 100644 indexers/accounts-squid/typegen.json diff --git a/indexers/accounts-squid/.gitignore b/indexers/accounts-squid/.gitignore new file mode 100644 index 000000000..263e67075 --- /dev/null +++ b/indexers/accounts-squid/.gitignore @@ -0,0 +1,11 @@ +/node_modules +/lib +/builds + +/**Versions.json +/**Versions.jsonl + +# IDE files +/.idea + +/src/model/generated/ \ No newline at end of file diff --git a/indexers/accounts-squid/.npmrc b/indexers/accounts-squid/.npmrc new file mode 100644 index 000000000..4fd021952 --- /dev/null +++ b/indexers/accounts-squid/.npmrc @@ -0,0 +1 @@ +engine-strict=true \ No newline at end of file diff --git a/indexers/accounts-squid/.prettierrc b/indexers/accounts-squid/.prettierrc new file mode 100644 index 000000000..49debf44c --- /dev/null +++ b/indexers/accounts-squid/.prettierrc @@ -0,0 +1,10 @@ +{ + "semi": false, + "tabWidth": 2, + "printWidth": 100, + "singleQuote": true, + "trailingComma": "all", + "jsxSingleQuote": true, + "bracketSpacing": true, + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/indexers/accounts-squid/.squidignore b/indexers/accounts-squid/.squidignore new file mode 100644 index 000000000..726f78c5f --- /dev/null +++ b/indexers/accounts-squid/.squidignore @@ -0,0 +1,7 @@ +node_modules +builds +lib +Dockerfile +.git +.github +.idea diff --git a/indexers/accounts-squid/LICENSE b/indexers/accounts-squid/LICENSE new file mode 100644 index 000000000..47cce4977 --- /dev/null +++ b/indexers/accounts-squid/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Autonomys Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/indexers/accounts-squid/README.md b/indexers/accounts-squid/README.md new file mode 100644 index 000000000..002ddf328 --- /dev/null +++ b/indexers/accounts-squid/README.md @@ -0,0 +1,194 @@ +# Consensus squid + +Our Consensus Indexer using [Squid](https://subsquid.io). +It is in use at [Astral - Consensus](https://explorer.autonomys.xyz/gemini-3h/consensus) Autonomys Explorer, Consensus section. + +## Summary + +- [Quickstart](#quickly-running-the-squid) +- [Development flow](#dev-flow) + - [Database Schema](#1-define-database-schema) + - [Entity classes](#2-generate-typeorm-classes) + - [DB migrations](#3-generate-database-migration) + - [Typegen for Events, Extrinsics and Storage Calls](#4-generate-typescript-definitions-for-substrate-events-calls-and-storage) +- [Deploy the Squid](#deploy-the-squid) +- [Conventions](#project-conventions) +- [Type Bundles](#types-bundle) + +## Prerequisites + +- node 16.x +- docker +- npm -- note that `yarn` package manager is not supported + +## Quickly running the squid + +Commands below use [sqd](https://docs.subsquid.io/squid-cli/). +Please [install](https://docs.subsquid.io/squid-cli/installation/) it before proceeding. + +```bash +# 1. Install dependencies +npm ci + +# 2. Start target Postgres database and detach +sqd up + +# 3. Build the project +sqd build + +# 4. Start both the squid processor and the GraphQL server +sqd run . +``` + +A GraphiQL playground will be available at [localhost:4350/graphql](http://localhost:4350/graphql). + +## Dev flow + +### 1. Define database schema + +Start development by defining the schema of the target database via `schema.graphql`. +Schema definition consists of regular graphql type declarations annotated with custom directives. +Full description of `schema.graphql` dialect is available [here](https://docs.subsquid.io/store/postgres/schema-file/). + +### 2. Generate TypeORM classes + +Mapping developers use [TypeORM](https://typeorm.io) entities +to interact with the target database during data processing. All necessary entity classes are +[generated](https://docs.subsquid.io/store/postgres/schema-file/intro/) by the squid framework from `schema.graphql`. This is done by running `npx squid-typeorm-codegen` +or (equivalently) `sqd codegen` command. + +### 3. Generate database migration + +All database changes are applied through migration files located at `db/migrations`. +`squid-typeorm-migration(1)` tool provides several commands to drive the process. +It is all [TypeORM](https://typeorm.io/#/migrations) under the hood. + +```bash +# Connect to database, analyze its state and generate migration to match the target schema. +# The target schema is derived from entity classes generated earlier. +# Don't forget to compile your entity classes beforehand! +npx squid-typeorm-migration generate + +# Create template file for custom database changes +npx squid-typeorm-migration create + +# Apply database migrations from `db/migrations` +npx squid-typeorm-migration apply + +# Revert the last performed migration +npx squid-typeorm-migration revert +``` + +Available `sqd` shortcuts: + +```bash +# Build the project, remove any old migrations, then run `npx squid-typeorm-migration generate` +sqd migration:generate + +# Run npx squid-typeorm-migration apply +sqd migration:apply +``` + +### 4. Generate TypeScript definitions for substrate events, calls and storage + +This is an optional part, but it is very advisable. + +Event, call and runtime storage data come to mapping handlers as raw untyped json. +While it is possible to work with raw untyped json data, +it's extremely error-prone and the json structure may change over time due to runtime upgrades. + +Squid framework provides a tool for generating type-safe wrappers around events, calls and runtime storage items for +each historical change in the spec version. See the [Substrate typegen](https://docs.subsquid.io/substrate-indexing/squid-substrate-typegen/) documentation page. + +## Deploy the Squid + +After a local run, obtain a deployment key by signing into [Subsquid Cloud](https://app.subsquid.io) and run + +```sh +npx sqd auth -k YOUR_DEPLOYMENT_KEY +``` + +Next, inspect the Squid CLI help to deploy and manage your squid: + +```sh +npx sqd squid --help +``` + +For more information, consult the [Deployment Guide](https://docs.subsquid.io/deploy-squid/). + +## Project conventions + +Squid tools assume a certain project layout. + +- All compiled js files must reside in `lib` and all TypeScript sources in `src`. + The layout of `lib` must reflect `src`. +- All TypeORM classes must be exported by `src/model/index.ts` (`lib/model` module). +- Database schema must be defined in `schema.graphql`. +- Database migrations must reside in `db/migrations` and must be plain js files. +- `squid-*(1)` executables consult `.env` file for a number of environment variables. + +See the [full desription](https://docs.subsquid.io/basics/squid-structure/) in the documentation. + +## Types bundle + +Substrate chains that have blocks with metadata versions below 14 don't provide enough +information to decode their data. For those chains, external [type](https://polkadot.js.org/docs/api/start/types.extend) [definitions](https://polkadot.js.org/docs/api/start/types.extend) are required. + +Subsquid tools include definitions for many chains, however sometimes external +definitions are still required. + +You can pass them as a special json file (types bundle) of the following structure: + +```json5 +{ + types: { + AccountId: "[u8; 32]", + }, + typesAlias: { + assets: { + Balance: "u64", + }, + }, + versions: [ + { + minmax: [0, 1000], // spec version range with inclusive boundaries + types: { + AccountId: "[u8; 16]", + }, + typesAlias: { + assets: { + Balance: "u32", + }, + }, + }, + ], +} +``` + +- `.types` - scale type definitions similar to [polkadot.js types](https://polkadot.js.org/docs/api/start/types.extend#extension) +- `.typesAlias` - similar to [polkadot.js type aliases](https://polkadot.js.org/docs/api/start/types.extend#type-clashes) +- `.versions` - per-block range overrides/patches for above fields. + +All fields in the type bundle are optional and applied on top of a fixed set of well-known frame types. + +Note, that although the structure of subsquid types bundle is very similar to the one from polkadot.js, +those two are not fully compatible. + +## Differences from polkadot.js + +Polkadot.js provides lots of [specialized classes](https://polkadot.js.org/docs/api/start/types.basics) for various types of data. +Even primitives like `u32` are exposed through special classes. +In contrast, the squid framework works only with plain js primitives and objects. +For instance, account data is passed to the handler context as a plain byte array. To convert it into a standard human-readable format one should explicitly use a utility lib `@subsquid/ss58`: + +```typescript + // ... + from: ss58.codec('kusama').encode(rec.from), + to: ss58.codec('kusama').encode(rec.to), +``` + +## Graphql server extensions + +It is possible to extend `squid-graphql-server(1)` with custom +[type-graphql](https://typegraphql.com) resolvers and to add request validation. +For more details, consult [docs](https://docs.subsquid.io/graphql-api/). diff --git a/indexers/accounts-squid/commands.json b/indexers/accounts-squid/commands.json new file mode 100644 index 000000000..e36c754d1 --- /dev/null +++ b/indexers/accounts-squid/commands.json @@ -0,0 +1,97 @@ +{ + "$schema": "https://cdn.subsquid.io/schemas/commands.json", + "commands": { + "clean": { + "description": "delete all build artifacts", + "cmd": ["npx", "--yes", "rimraf", "lib"] + }, + "build": { + "description": "Build the squid project", + "deps": ["clean"], + "cmd": ["tsc"] + }, + "up": { + "description": "Start a PG database", + "cmd": ["docker", "compose", "up", "-d"] + }, + "down": { + "description": "Drop a PG database", + "cmd": ["docker", "compose", "down"] + }, + "migration:apply": { + "description": "Apply the DB migrations", + "cmd": ["squid-typeorm-migration", "apply"] + }, + "migration:generate": { + "description": "Generate a DB migration matching the TypeORM entities", + "deps": ["build", "migration:clean"], + "cmd": ["squid-typeorm-migration", "generate"] + }, + "migration:clean": { + "description": "Clean the migrations folder", + "cmd": ["npx", "--yes", "rimraf", "./db/migrations"] + }, + "migration": { + "deps": ["build"], + "cmd": ["squid-typeorm-migration", "generate"], + "hidden": true + }, + "codegen": { + "description": "Generate TypeORM entities from the schema file", + "cmd": ["squid-typeorm-codegen"] + }, + "typegen": { + "description": "Generate data access classes for an substrate metadata", + "cmd": ["squid-substrate-typegen", "./typegen.json"] + }, + "process": { + "description": "Load .env and start the squid processor", + "deps": ["build", "migration:apply"], + "cmd": ["node", "--require=dotenv/config", "lib/main.js"] + }, + "process:prod": { + "description": "Start the squid processor", + "deps": ["migration:apply"], + "cmd": ["node", "lib/main.js"], + "hidden": true + }, + "serve": { + "description": "Start the GraphQL API server", + "cmd": ["squid-graphql-server", "--subscriptions"] + }, + "serve:prod": { + "description": "Start the GraphQL API server with caching and limits", + "cmd": [ + "squid-graphql-server", + "--subscriptions", + "--dumb-cache", + "in-memory", + "--dumb-cache-ttl", + "1000", + "--dumb-cache-size", + "100", + "--dumb-cache-max-age", + "1000" + ] + }, + "check-updates": { + "cmd": [ + "npx", + "--yes", + "npm-check-updates", + "--filter=/subsquid/", + "--upgrade" + ], + "hidden": true + }, + "bump": { + "description": "Bump @subsquid packages to the latest versions", + "deps": ["check-updates"], + "cmd": ["npm", "i", "-f"] + }, + "open": { + "description": "Open a local browser window", + "cmd": ["npx", "--yes", "opener"] + } + } +} diff --git a/indexers/accounts-squid/db/migrations/1724677830992-Data.js b/indexers/accounts-squid/db/migrations/1724677830992-Data.js new file mode 100644 index 000000000..0f440288d --- /dev/null +++ b/indexers/accounts-squid/db/migrations/1724677830992-Data.js @@ -0,0 +1,33 @@ +module.exports = class Data1724677830992 { + name = 'Data1724677830992' + + async up(db) { + await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) + await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) + await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) + await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) + await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) + await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) + await db.query(`CREATE INDEX "IDX_58367bdb03b7f41ade3b09f26a" ON "transfer" ("date") `) + await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) + await db.query(`CREATE TABLE "slack_message" ("id" character varying NOT NULL, "message_id" text NOT NULL, CONSTRAINT "PK_0f63f6886c966a139786d88b66a" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_aa83d548510c4e1b4ecd8d0caa" ON "slack_message" ("message_id") `) + } + + async down(db) { + await db.query(`DROP TABLE "account"`) + await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) + await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) + await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) + await db.query(`DROP TABLE "transfer"`) + await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) + await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) + await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) + await db.query(`DROP INDEX "public"."IDX_58367bdb03b7f41ade3b09f26a"`) + await db.query(`DROP INDEX "public"."IDX_086e57d995900e69b54046e257"`) + await db.query(`DROP TABLE "slack_message"`) + await db.query(`DROP INDEX "public"."IDX_aa83d548510c4e1b4ecd8d0caa"`) + } +} diff --git a/indexers/accounts-squid/gemini3h.jsonl b/indexers/accounts-squid/gemini3h.jsonl new file mode 100644 index 000000000..1bf2a8720 --- /dev/null +++ b/indexers/accounts-squid/gemini3h.jsonl @@ -0,0 +1,5 @@ +{"specName":"subspace","specVersion":0,"blockNumber":0,"blockHash":"0x0c121c75f4ef450f40619e1fca9d1e8e7fbabc42c895bc4790801e85d5a91c34","metadata":"0x6d6574610e1505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e0104b046656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f722e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001503042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e001300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f00c3073705f6d657373656e676572206d657373616765731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e7469666965720001081c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e4964000100005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e89030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400450301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400490301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400510301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400790301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400850301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66d90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e6669672d0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e66696739030168446f6d61696e436f6e6669673c543a3a4163636f756e7449643e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973743d03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373d50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265d10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180014014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00012c62756e646c655f73697a6510010c75333200015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c753634000144676c6f62616c5f72616e646f6d6e657373d101012852616e646f6d6e6573730001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e63650118002c014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd020864646f6d61696e5f72756e74696d655f7072696d69746976657324426c6f636b46656573041c42616c616e6365011800080154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650000d1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000d502000002a50200d9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012458496e76616c696453746174655472616e736974696f6e0400dd0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400f50201d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400f90201cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400fd0201f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400010301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400050301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400210301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400250301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400290301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080000dd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66e102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365e9020138457865637574696f6e50686173650000e1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573e502014442547265655365743c5665633c75383e3e0000e5020420425472656553657404045401340004003d01000000e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66e102013053746f7261676550726f6f660001206d69736d61746368ed0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d61746368f102015446696e616c697a65426c6f636b4d69736d6174636800020000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f7274657200010000f1020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c75333200010000f5020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66e102013053746f7261676550726f6f660000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66e102013053746f7261676550726f6f66000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473090301585665633c56616c696442756e646c654469676573743e000009030000020d03000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737411030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000110300000215030015030000040819031d0300190304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100001d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66e102013053746f7261676550726f6f66000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461e102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00002d030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e74000031030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000035030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000039030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696704244163636f756e7449640100001c012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c6973743d0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e00003d03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304004103014c42547265655365743c4163636f756e7449643e000100004103042042547265655365740404540100000400790200000045030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65734d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d03000002e40051030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d735503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73675d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c590301444665654d6f64656c3c42616c616e63653e000059030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500005d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66610301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167710301404d657373616765576569676874546167000061030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f65030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66690301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66e102013053746f7261676550726f6f66000065030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000690304184f7074696f6e040454016d030108104e6f6e6500000010536f6d6504006d0300000100006d03000004086503e1020071030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040075030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040075030120456e64706f696e74000300104e6f6e650004000075030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000079030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e7d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964810301384d756c74694163636f756e744964000081030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000085030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8903084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d04008d0301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400910301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000100008d030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200009103081c73705f636f726510566f69640001000095030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d62657200009d030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70a103013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74b503019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000a103042042547265654d617008044b01a503045601a903000400ad03000000a5030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000a9030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000ad03000002b10300b10300000408a503a90300b503042042547265654d617008044b01a503045601a103000400b903000000b903000002bd0300bd0300000408a503a10300c1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e657369739d03012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000c5030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273d503015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000c903042042547265654d617008044b012c04560118000400cd03000000cd03000002d10300d103000004082c1800d50304204254726565536574040454012c000400d903000000d9030000022c00dd030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110002c012c7369676e696e675f6b6579310301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461783503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573e10301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f636818011453686172650000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400e50301ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c617368656400020000e5030c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f6368e903012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d6265720000e9030c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e6465780000ed03000004082ce90300f1030c3870616c6c65745f646f6d61696e731c7374616b696e67285368617265507269636500000400f503011c50657262696c6c0000f5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000f903000004082c0000fd030c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e0104014c4b6e6f776e4465706f7369743c53686172653e00011c70656e64696e670504017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000001040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740414536861726501180004011873686172657318011453686172650000050404184f7074696f6e0404540109040108104e6f6e6500000010536f6d6504000904000001000009040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000801586566666563746976655f646f6d61696e5f65706f6368e903012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500000d040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73110401c056656344657175653c28446f6d61696e49642c20446f6d61696e426c6f636b4e756d6265722c2042616c616e6365293e0001507769746864726177616c5f696e5f736861726573190401bc4f7074696f6e3c28446f6d61696e45706f63682c20446f6d61696e426c6f636b4e756d6265722c205368617265293e0000110400000215040015040000040ccc101800190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040000040ce90310180021040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a6563740c184e756d62657201102c52656365697074486173680130244163636f756e7449640100001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669673903015c446f6d61696e436f6e6669673c4163636f756e7449643e00014c646f6d61696e5f72756e74696d655f696e666f25040144446f6d61696e52756e74696d65496e666f000025040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000290400000408cc10002d040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473d903013c5665633c4f70657261746f7249643e000031040000040ccc10300035040000040ccc10100039040000023d04003d04082873705f646f6d61696e733042756e646c6544696765737404104861736801300008012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800004104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273c903017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e6365000045040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765490401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400004904086073756273706163655f636f72655f7072696d6974697665731055323536000004004d040148707269766174655f753235363a3a5532353600004d040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d000051040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011828467261756450726f6f6604005504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904005904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704005d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400610401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904006504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040069040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600040078496e76616c696445787472696e736963526f6f74467261756450726f6f6600050080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600060054506172656e74526563656970744e6f74466f756e640007005c496e76616c696442756e646c65467261756450726f6f660008006042616456616c696442756e646c65467261756450726f6f660009003c4d697373696e674f70657261746f72000a0050556e6578706563746564467261756450726f6f66000b007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000c000059040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000124744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e65736973000800005d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000180444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f000061040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04005d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704005d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704005d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204005d04013c5472616e736974696f6e4572726f720003000065040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200013458496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c000069040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200013c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e00006d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004004d0301185665633c543e000071040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750400000408f0f4007904084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c496400011473746174657d0401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565590301444665654d6f64656c3c42616c616e63653e00007d04084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000810404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f4000001000085040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f61648904016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365810401344f7074696f6e3c4e6f6e63653e000089040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004008d0401405061796c6f61643c42616c616e63653e000000008d040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400910401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400990401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000091040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401950420526573706f6e736501c001081c5265717565737404009504011c5265717565737400000020526573706f6e73650400c00120526573706f6e73650001000095040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040055030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000099040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c52657175657374019d0420526573706f6e736501a10401081c5265717565737404009d04011c5265717565737400000020526573706f6e73650400a1040120526573706f6e7365000100009d040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7475030120456e64706f696e740001306473745f656e64706f696e7475030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000a1040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000a50400000408f0050100a9040000040cf0f4f400ad040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573b10401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000b104000002b50400b5040000040cf00501710300b9040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400bd040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273bd040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000c104084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465727d0301204c6f636174696f6e00012072656365697665727d0301204c6f636174696f6e0000c5040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f72040454000118284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e04944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ec9040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ecd04102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501d10414457874726101e10400040034000000d104082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400d5040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e61747572650001001445636473610400d904014065636473613a3a5369676e617475726500020000d5040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d0000d9040c1c73705f636f7265146563647361245369676e617475726500000400dd04017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000dd04000003410000000800e10400000428e504e904ed04f104f504fd040105050509050d0500e50410306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000e90410306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ed0410306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000f10410306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000f50410306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400f904010c4572610000f904102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000fd0410306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000010510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000000505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000009050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000000d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000001105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000000000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184000009ccb1bdfcb7da62e06000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c656467656418400077813e00000000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400000000000000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e019503081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406109903040000605363686564756c656452756e74696d65557067726164657300010806061d01c103040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040631032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406ccc503040000244f70657261746f7273000104062cdd03040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccd50304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f6368536861726550726963650001080606ed03f103040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f736974730001080606f903fd03040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c730001080606f9030d04040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccd50304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc2104040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806062904300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f64657300010406302d040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e804c6174657374436f6e6669726d6564446f6d61696e426c6f636b4e756d62657201010406cc10100000000004c820546865206c617465737420636f6e6669726d656420626c6f636b206e756d626572206f66206561636820646f6d61696e2e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e285374617465526f6f747300010406310430040008c820537461746520726f6f74206d617070656420616761696e206561636820646f6d61696e2028626c6f636b2c20686173682941012054686973206163747320617320616e20696e64657820666f72206f746865722070726f746f636f6c73206c696b652058444d20746f20666574636820737461746520726f6f7473206661737465722e48436f6e73656e737573426c6f636b48617368000108060629043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606350439040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc4104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c48446f6d61696e547852616e6765537461746500010406cc4504040000019d0201c84848436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069640151040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000145030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402006d0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01490301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0171040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675047904040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000085040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406a5041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406a50418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406a904850404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406a904850404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300008504040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000ad040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01510301ec0001b9043c2c5472616e73706f72746572012c5472616e73706f7274657204444f7574676f696e675472616e73666572730001080606a504c104040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e0179030101010001c5043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0185030109010001c90464cd04042848436865636b4e6f6e5a65726f53656e646572e504c440436865636b5370656356657273696f6ee9041038436865636b547856657273696f6eed041030436865636b47656e65736973f1043038436865636b4d6f7274616c697479f5043028436865636b4e6f6e6365fd04c42c436865636b5765696768740105c4604368617267655472616e73616374696f6e5061796d656e740505c448436865636b53746f726167654163636573730905c43844697361626c6550616c6c6574730d05c41105"} +{"specName":"subspace","specVersion":1,"blockNumber":308698,"blockHash":"0x718ea0067ec3512b2e73d9b738cc844f0cedf86837efb7b476e4b7ffeb186891","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000010000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402f10afc7a09d4559ce4706000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003c62c064f54600000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840000048000c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} +{"specName":"subspace","specVersion":2,"blockNumber":341637,"blockHash":"0x5e5d61fed37bcabc9f49b42c85affdca840f350ac5d28dc5c6a4a487915e9b14","metadata":"0x6d6574610e3d05000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0000048c4973737565642072657761726420666f722074686520626c6f636b20617574686f722e28566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000104704973737565642072657761726420666f722074686520766f7465722e045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0104284e6f6e5a65726f55333200000400100000008101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578748501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578748501012c4f7074696f6e3c7536343e0000850104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000089010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500008d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f74000091010000041498710195019901dc0095010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c753136000099010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e65720401104673467200009d010000041898710195019901dc0000a101042042547265654d617008044b019101045601a501000400b501000000a5010000040800a90100a9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000ad010c1c73705f636f72651c73723235353139245369676e617475726500000400b10101205b75383b2036345d0000b101000003400000000800b501000002b90100b901000004089101a50100bd01042042547265654d617008044b0110045601c101000400c901000000c1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74c50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000c50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000c901000002cd0100cd010000040810c10100d101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000d5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66d9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964658501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465e50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617411020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201dd010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572dd0101184865616465720001347365636f6e645f686561646572dd0101184865616465720000dd01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000e1010000028000e501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465e9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265a901013c4661726d65725369676e61747572650000e901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6eed0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d650d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d650d020124506f744f757470757400000000ed01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a65f101012c486973746f727953697a6500013070696563655f6f66667365749501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74f90101405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373fd0101345265636f72645769746e6573730001146368756e6b990101185363616c61720001346368756e6b5f7769746e657373010201304368756e6b5769746e65737300013870726f6f665f6f665f737061636505020120506f7350726f6f660000f1010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400f50101284e6f6e5a65726f5536340000f50104284e6f6e5a65726f553634000004002c000000f9010c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d0000fd010c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400090201405b75383b2053656c663a3a53495a455d00000902000003a000000008000d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000011020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200001502000004082c2c00190200000408f101f101001d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000250200000408a4340029020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d02045300000400350201185665633c543e00002d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733102011c526561736f6e73000031020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035020000022d020039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041020000023d020045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014902045300000400590201185665633c543e000049020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964014d021c42616c616e636501180008010869644d0201084964000118616d6f756e7418011c42616c616e636500004d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001041c446f6d61696e73040051020154446f6d61696e73486f6c644964656e746966696572000000005102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400550201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200005502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f7249640000000059020000024902005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400650201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e63650000650200000261020069020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f6465617468080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f757263656d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c697665080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c080110646573746d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f790201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400750201205b75383b2032305d000400007102000006c4007502000003140000000800790200000200007d020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8102085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e636500008502085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e6365000089020c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800008d02086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000091020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea5030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c739502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020000029902009902084073756273706163655f72756e74696d652c52756e74696d6543616c6c00012c1853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400d50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002002042616c616e6365730400690201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e7304009d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400650301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400690301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400710301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400990301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400a10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e006400009d020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65a10201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66e90201f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967410301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e6669674d0301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e347377697463685f646f6d61696e08012c6f70657261746f725f69642c01284f70657261746f7249640001346e65775f646f6d61696e5f6964cc0120446f6d61696e496400070478536565205b6050616c6c65743a3a7377697463685f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973745103017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea102082873705f646f6d61696e731842756e646c65142445787472696e73696301a502184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e63650118000801347365616c65645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373e50201385665633c45787472696e7369633e0000a502082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000a902082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e6365011800080118686561646572ad0201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265e10201444f70657261746f725369676e61747572650000ad02082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201dd011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6eb102015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074b902019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000b102082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d650d020124506f744f75747075740001347672665f7369676e6174757265b50201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000b502101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b101012056726650726f6f660000b902082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573bd0201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573cd020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273d10201485472616e73666572733c42616c616e63653e0000bd02000002c10200c102082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65c502015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000c502082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400c9020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000c902082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000cd02082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000d102082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ed502016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574d502016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564d502016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564d502016842547265654d61703c436861696e49642c2042616c616e63653e0000d502042042547265654d617008044b01f004560118000400d902000000d902000002dd0200dd0200000408f01800e1020c2873705f646f6d61696e730c617070245369676e617475726500000400ad010148737232353531393a3a5369676e61747572650000e502000002a50200e9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd01012858496e76616c696453746174655472616e736974696f6e0400ed0201e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e0400050301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400090301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e04000d0301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400110301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f740400150301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400310301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b486173680400350301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400390301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e736665727304003d0301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00090000ed020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f66f102013053746f7261676550726f6f6600013c657865637574696f6e5f7068617365f9020138457865637574696f6e50686173650000f1020c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f646573f502014442547265655365743c5665633c75383e3e0000f5020420425472656553657404045401340004003d01000000f9020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f66f102013053746f7261676550726f6f660001206d69736d61746368fd0201584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463680103015446696e616c697a65426c6f636b4d69736d6174636800020000fd020c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000001030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c7533320001000005030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000009030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201dd0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572a90201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473190301585665633c56616c696442756e646c654469676573743e000019030000021d03001d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737421030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e0000210300000225030025030000040829032d0300290304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100002d03082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c753332000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f66f102013053746f7261676550726f6f66000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065c9020144496e76616c696442756e646c655479706500012870726f6f665f64617461f102013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c00003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f66f102013053746f7261676550726f6f66000041030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e74000045030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000049030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800004d030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747915020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374510301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573590301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00005103082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304005503014c42547265655365743c4163636f756e7449643e000100005503042042547265655365740404540100000400790200000059030000025d03005d03000004086103180061030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400750201205b75383b2032305d0001000c526177040034011c5665633c75383e0002000065030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f6d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c65736d0301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573746d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03000002e40071030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011040696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d737503018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d73677d0301f843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c205374617465526f6f744f663c543e3e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c790301444665654d6f64656c3c42616c616e63653e000079030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e636500007d030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f740130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66810301a050726f6f663c426c6f636b4e756d6265722c20426c6f636b486173682c205374617465526f6f743e0001287765696768745f746167910301404d657373616765576569676874546167000081030c3073705f6d657373656e676572206d657373616765731450726f6f660c2c426c6f636b4e756d626572011024426c6f636b486173680130245374617465526f6f74013000100168636f6e73656e7375735f636861696e5f626c6f636b5f696e666f85030184426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e000168636f6e73656e7375735f636861696e5f73746174655f726f6f743001245374617465526f6f74000130646f6d61696e5f70726f6f66890301e44f7074696f6e3c28426c6f636b496e666f3c426c6f636b4e756d6265722c20426c6f636b486173683e2c2053746f7261676550726f6f66293e0001346d6573736167655f70726f6f66f102013053746f7261676550726f6f66000085030c3073705f6d657373656e676572206d6573736167657324426c6f636b496e666f08184e756d62657201101048617368013000080130626c6f636b5f6e756d6265721001184e756d626572000128626c6f636b5f68617368300110486173680000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d03000004088503f1020091030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e7452657175657374040095030120456e64706f696e7400020040456e64706f696e74526573706f6e7365040095030120456e64706f696e74000300104e6f6e650004000095030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e7449640000000099030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e9d0301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d03084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964610301384d756c74694163636f756e7449640000a1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e65776d0201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f6d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9902017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea503084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400a90301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400ad0301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000a9030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000ad03081c73705f636f726510566f696400010000b1030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000b9030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70bd03013847656e6573697353746f726167650001406368696c6472656e5f64656661756c74d103019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000bd03042042547265654d617008044b01c103045601c503000400c903000000c1030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e0000c5030c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e0000c903000002cd0300cd0300000408c103c50300d103042042547265654d617008044b01c103045601bd03000400d503000000d503000002d90300d90300000408c103bd0300dd030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973b903012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e00011068617368300110486173680000e1030c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f7273f103015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f72657761726473e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0000e503042042547265654d617008044b012c04560118000400e903000000e903000002ed0300ed03000004082c1800f10304204254726565536574040454012c000400f503000000f5030000022c00f9030c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579450301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461784903011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573fd0301844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e63650000fd030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110010c2852656769737465726564000000304465726567697374657265640400010401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002000001040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000005040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800000904000004082c0504000d040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004001104011c50657262696c6c000011040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200001504000004082c000019040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e1d0401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e672104017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e00001d040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000210404184f7074696f6e0404540125040108104e6f6e6500000010536f6d6504002504000001000025040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63680504012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000029040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c732d0401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573350401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e00002d0400000231040031040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000350404184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000039040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63680504012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e636500003d040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e6669674d030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f41040144446f6d61696e52756e74696d65496e666f000041040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e496400000000450400000408cc100049040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074b902010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473f503013c5665633c4f70657261746f7249643e00004d040000040ccc10100051040000025504005504082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200005904083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f7273e503017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500005d04082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e48617368000061040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765650401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c75363400006504086073756273706163655f636f72655f7072696d69746976657310553235360000040069040148707269766174655f753235363a3a55323536000069040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d00006d0408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d000071040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f6604007504013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904007904015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e6704007d0401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400850401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904008904014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b5472656504008d040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404008104015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013848426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d000079040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e74496454797065000900007d040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000184444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e6404008104016862756e646c655f73746f726167655f66756e643a3a4572726f720020000081040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000085040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e04007d04013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e6704007d04013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e6704007d04013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f7204007d04013c5472616e736974696f6e4572726f720003000089040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200014c58496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304007904017863726174653a3a72756e74696d655f72656769737472793a3a4572726f72001200008d040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014858496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e73666572730011000091040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e40453000004006d0301185665633c543e000095040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990400000408f0f4009d04084070616c6c65745f6d657373656e6765721c4368616e6e656c041c42616c616e63650118001c01286368616e6e656c5f6964f401244368616e6e656c49640001147374617465a10401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565790301444665654d6f64656c3c42616c616e63653e0000a104084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000a50404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000a9040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164ad04016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365a50401344f7074696f6e3c4e6f6e63653e0000ad040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400b10401405061796c6f61643c42616c616e63653e00000000b1040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400b50401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400bd0401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000b5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401b90420526573706f6e736501c001081c526571756573740400b904011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000b9040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e040075030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000bd040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401c10420526573706f6e736501c50401081c526571756573740400c104011c5265717565737400000020526573706f6e73650400c5040120526573706f6e736500010000c1040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e7495030120456e64706f696e740001306473745f656e64706f696e7495030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000c5040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000c90400000408f0050100cd040000040cf0f4f400d1040c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f78d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e736573d50401ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e0000d504000002d90400d9040000040cf00501910300dd040c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400013030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e0400e1040144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a0456d697465207768656e207468652074686572652069732062616c616e6365206f766572666c6f7704646070616c6c65742d6d657373656e67657260206572726f7273e1040c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020000e504084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465729d0301204c6f636174696f6e00012072656365697665729d0301204c6f636174696f6e0000e90400000408f0f000ed040c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722ef1040c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ef504102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373016d021043616c6c019902245369676e617475726501f90414457874726101090500040034000000f904082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400fd040148656432353531393a3a5369676e61747572650000001c537232353531390400ad010148737232353531393a3a5369676e617475726500010014456364736104000105014065636473613a3a5369676e617475726500020000fd040c1c73705f636f72651c65643235353139245369676e617475726500000400b10101205b75383b2036345d000001050c1c73705f636f7265146563647361245369676e6174757265000004000505017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d000005050000034100000008000905000004280d051105150519051d05250529052d0531053505000d0510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000110510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000150510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000190510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000001d0510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002105010c45726100002105102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000250510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000290510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000002d05086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000031050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f726167654163636573730000000035050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000003905084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000020000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d010000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980010000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000120537562737061636501205375627370616365582c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e44506f74536c6f74497465726174696f6e7300007d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100810148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500008901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100008d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f000091010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f00009d010400043d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820626c6f636b20617574686f7220696e666f726d6174696f6e2e44506172656e74426c6f636b566f746572730100a101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000a1010400046d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207769746820766f7465727320696e207468652063757272656e7420626c6f636b2074687573206661722e28506f74456e74726f70790100bd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01d501017c344c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f101200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e19024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f101200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d617829011d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405302102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505250215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473000001a8082c426c6f636b526577617264184000008a5d78456301000000000000000004842046697865642072657761726420666f7220626c6f636b2070726f64756365722e28566f7465526577617264184000008a5d78456301000000000000000004602046697865642072657761726420666f7220766f7465722e00042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402003902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020045020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402005d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01690201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d02053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100810280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000850204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c79184054dcf4b51238a2c9502107000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000a29d3b60c75200000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a651840002049300c000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100890240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01008d020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001910201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01b103081c446f6d61696e73011c446f6d61696e737c445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610b503040000605363686564756c656452756e74696d65557067726164657300010806061d01dd03040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b65790001040645032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cce103040000244f70657261746f7273000104062cf903040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406ccf10304000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060609040d04040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060615041904040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060615042904040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406ccf10304000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc3d04040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806064504300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063049040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b48617368000108060645043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c0606064d0451040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc5904040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc5d04040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e48446f6d61696e547852616e6765537461746500010406cc6104040000019d0201c84c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10106400000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c657449646d0420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e0171040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b0100101000000000000165030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200910404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01690301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0195040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e6765722c344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060699049d04040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000a9040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f7846656500010406c9041804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406c90418040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e73657300010406cd04a90404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f7800010406cd04a90404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000a904040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d657373616765730000d1040400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e01710301ec0001dd043c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e73666572730001080606c904e504040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100d102100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e73666572730101080606e9041840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606e90418400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e0199030101010001ed043d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01a1030109010001f10464f504042848436865636b4e6f6e5a65726f53656e6465720d05c440436865636b5370656356657273696f6e11051038436865636b547856657273696f6e15051030436865636b47656e6573697319053038436865636b4d6f7274616c6974791d053028436865636b4e6f6e63652505c42c436865636b5765696768742905c4604368617267655472616e73616374696f6e5061796d656e742d05c448436865636b53746f726167654163636573733105c43844697361626c6550616c6c6574733505c43905"} +{"specName":"subspace","specVersion":3,"blockNumber":718959,"blockHash":"0x2d87089f7e5f68b745711e7f52ce3aadbef26c4bfd432d0fdd6132bceaf604a7","metadata":"0x6d6574610e7505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173651101011450686173650001146576656e7450010445000118746f70696373150101185665633c543e000050084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e63657353756273706163650400a0017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a8017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400ac017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b4019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400bc015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c8017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400e001706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400ec018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f7274657204000101018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000901016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736830011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e646578000004002c010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c6963000004009c013c737232353531393a3a5075626c696300009c0c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000a00c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a401104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea4000003100000000800a80c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473ac0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573b001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b40c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74c001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00418526573756c7408045401c4044501640108084f6b0400c4000000000c4572720400640000010000c40000040000c80c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964cc0120446f6d61696e496400012c62756e646c655f686173683001104832353600013462756e646c655f617574686f722c01284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065d0012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69642c01284f70657261746f724964000124646f6d61696e5f6964cc0120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964cc0120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964cc0120446f6d61696e49640001346e65775f646f6d61696e5f6964cc0120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69642c01284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69642c01284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69642c01284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69642c01284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964cc0120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964cc0120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d4017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964cc0120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69642c01284f70657261746f724964000118726561736f6ed801e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69642c01284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000d0082873705f646f6d61696e732c52756e74696d65547970650001040c45766d00000000d404184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d80c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680130010c34496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040030012c52656365697074486173680001004842756e646c6545717569766f636174696f6e0400dc0110536c6f7400020000dc084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000e00c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65e4015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e408306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e8011c42616c616e63650000e80000061800ec0c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964f0011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964f401244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000118726573756c74fc014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964f0011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964f401244368616e6e656c496404284368616e6e656c20497301146e6f6e6365f401144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473f0082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400cc0120446f6d61696e496400010000f4083c7072696d69746976655f7479706573105532353600000400f801205b7536343b20345d0000f8000003040000002c00fc084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040064013444697370617463684572726f720001000001010c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727264013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964f0011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964050101384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722e050100000408f4f40009010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c640d0101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74c001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200001501000002300019010000021d01001d0100000408101000210108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e2501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652901016473705f72756e74696d653a3a52756e74696d65537472696e67000025010000061000290100000502002d0108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c000031010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73350101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b6579733d0101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35010000023901003901000004083434003d01000002340041010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373450101845065724469737061746368436c6173733c57656967687473506572436c6173733e000045010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014901000c01186e6f726d616c490101045400012c6f7065726174696f6e616c49010104540001246d616e6461746f72794901010454000049010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e7369634d0101384f7074696f6e3c5765696768743e0001246d61785f746f74616c4d0101384f7074696f6e3c5765696768743e00012072657365727665644d0101384f7074696f6e3c5765696768743e00004d0104184f7074696f6e04045401240108104e6f6e6500000010536f6d65040024000001000051010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178550101545065724469737061746368436c6173733c7533323e000055010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005901082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005d01082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652901013452756e74696d65537472696e67000124696d706c5f6e616d652901013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736101011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800006101040c436f77040454016501000400650100000065010000026901006901000004086d0110006d010000030800000008007101000005040075010c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657479010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601dc0453000004008101013842547265654d61703c4b2c20563e00008101042042547265654d617008044b0110045601dc0004008501000000850100000289010089010000040810dc008d0104284e6f6e5a65726f55333200000400100000009101085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e742c010c7536340001106e6578749501012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e742c010c75363400012c766f74696e675f6e6578749501012c4f7074696f6e3c7536343e0000950104184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c000001000099010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500009d01083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e67652c0134536f6c7574696f6e52616e676500013063757272656e745f736c6f74dc0110536c6f7400012c706172656e745f736c6f74dc0110536c6f740000a10100000414987101a501a901dc00a5010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004007101010c7531360000a9010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000ad0100000418987101a501a901dc0000b101042042547265654d617008044b01a101045601b501000400c501000000b5010000040800b90100b9010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400bd010148737232353531393a3a5369676e61747572650000bd010c1c73705f636f72651c73723235353139245369676e617475726500000400c10101205b75383b2036345d0000c101000003400000000800c501000002c90100c90100000408a101b50100cd01042042547265654d617008044b0110045601d101000400d901000000d1010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74d50101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000d50104184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000d901000002dd0100dd010000040810d10100e101086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000e5010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273f10101485665633c5365676d656e744865616465723e00010498536565205b6050616c6c65743a3a73746f72655f7365676d656e745f68656164657273605d2e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659501012c4f7074696f6e3c7536343e000204c4536565205b6050616c6c65743a3a656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e74605d2e10766f746504012c7369676e65645f766f7465f50101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e00030454536565205b6050616c6c65743a3a766f7465605d2e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617421020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e00040488536565205b6050616c6c65743a3a656e61626c655f726577617264735f6174605d2e68656e61626c655f617574686f72696e675f62795f616e796f6e65000504ac536565205b6050616c6c65743a3a656e61626c655f617574686f72696e675f62795f616e796f6e65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ed010849640198001001206f6666656e6465729801084964000110736c6f74dc0110536c6f7400013066697273745f686561646572ed0101184865616465720001347365636f6e645f686561646572ed0101184865616465720000ed01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572250101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000f1010000028000f501085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801303452657761726441646472657373010000080110766f7465f9010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b901013c4661726d65725369676e61747572650000f901085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801303452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736830011048617368000110736c6f74dc0110536c6f74000120736f6c7574696f6efd0101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d651d020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d651d020124506f744f757470757400000000fd01086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465787101012c536563746f72496e646578000130686973746f72795f73697a650102012c486973746f727953697a6500013070696563655f6f6666736574a501012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74090201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e6573730d0201345265636f72645769746e6573730001146368756e6ba90101185363616c61720001346368756e6b5f7769746e657373110201304368756e6b5769746e65737300013870726f6f665f6f665f737061636515020120506f7350726f6f66000001020c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400050201284e6f6e5a65726f5536340000050204284e6f6e5a65726f553634000004002c00000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d00000d020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000011020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00001502086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400190201405b75383b2053656c663a3a53495a455d00001902000003a000000008001d02086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a401405b75383b2053656c663a3a53495a455d000021020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d4014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e676504002c010c753634000100204d616e75616c6c79000200002502000004082c2c0029020000040801020102002d020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e31020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e6465720000350200000408a4340039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d02045300000400410201185665633c543e00003d02083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000041020000023d020045020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733902013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e0000049c536565205b6050616c6c65743a3a7570646174655f69737375616e63655f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d02045300000400550201185665633c543e00004d020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869646d0101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735102011c526561736f6e73000051020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000055020000024d020059020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400610201185665633c543e00005d020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572016d011c42616c616e636501180008010869646d010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000061020000025d020065020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016902045300000400810201185665633c543e000069020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964016d021c42616c616e636501180008010869646d0201084964000118616d6f756e7418011c42616c616e636500006d02084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040071020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007902015c4d657373656e676572486f6c644964656e746966696572000100007102082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e670400750201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400cc0120446f6d61696e49640001002c53746f7261676546756e6404002c01284f70657261746f724964000200007502082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404002c01284f70657261746f724964000000007902082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007d02015028436861696e49642c204368616e6e656c496429000000007d0200000408f0f400810200000269020085020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540189020453000004008d0201185665633c543e000089020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c41c42616c616e63650118000801086964c401084964000118616d6f756e7418011c42616c616e636500008d0200000289020091020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e80128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686fa10201445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e80128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c4011408496404000001244163636f756e74496400000014496e6465780400990201304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009902000006c4009d02000003140000000800a1020000020000a5020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea902085c70616c6c65745f7472616e73616374696f6e5f666565735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000ad02085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000b1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b502086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465787101010c75313600011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ee1030154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73bd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd02000002c10200c102084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400310101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400790101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400e50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c526577617264730400450201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e6669677304008d0301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400990301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400d50301c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400dd0301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c5020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000134347375626d69745f62756e646c650401346f70617175655f62756e646c65c90201444f706171756542756e646c654f663c543e00000478536565205b6050616c6c65743a3a7375626d69745f62756e646c65605d2e487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f66110301f0426f783c467261756450726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a446f6d61696e4865616465723e3e0001048c536565205b6050616c6c65743a3a7375626d69745f66726175645f70726f6f66605d2e5c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676534011c5665633c75383e000204a0536565205b6050616c6c65743a3a72656769737465725f646f6d61696e5f72756e74696d65605d2e58757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676534011c5665633c75383e0003049c536565205b6050616c6c65743a3a757067726164655f646f6d61696e5f72756e74696d65605d2e4472656769737465725f6f70657261746f720c0124646f6d61696e5f6964cc0120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967690301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e00040488536565205b6050616c6c65743a3a72656769737465725f6f70657261746f72605d2e446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69642c01284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050488536565205b6050616c6c65743a3a6e6f6d696e6174655f6f70657261746f72605d2e48696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967750301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006048c536565205b6050616c6c65743a3a696e7374616e74696174655f646f6d61696e605d2e4c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f72496400080490536565205b6050616c6c65743a3a646572656769737465725f6f70657261746f72605d2e3877697468647261775f7374616b6508012c6f70657261746f725f69642c01284f70657261746f724964000118736861726573180120543a3a53686172650009047c536565205b6050616c6c65743a3a77697468647261775f7374616b65605d2e30756e6c6f636b5f66756e647304012c6f70657261746f725f69642c01284f70657261746f724964000a0474536565205b6050616c6c65743a3a756e6c6f636b5f66756e6473605d2e3c756e6c6f636b5f6f70657261746f7204012c6f70657261746f725f69642c01284f70657261746f724964000b0480536565205b6050616c6c65743a3a756e6c6f636b5f6f70657261746f72605d2e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964cc0120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c6973747903017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c04c8536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374605d2e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964cc0120446f6d61696e4964000d04bc536565205b6050616c6c65743a3a666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902082873705f646f6d61696e731842756e646c65142445787472696e73696301cd02184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e63650118000801347365616c65645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e736963730d0301385665633c45787472696e7369633e0000cd02082873705f72756e74696d653c4f706171756545787472696e7369630000040034011c5665633c75383e0000d102082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e6365011800080118686561646572d50201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265090301444f70657261746f725369676e61747572650000d502082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013030446f6d61696e48656164657201ed011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed902015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074e102019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687424011857656967687400015862756e646c655f65787472696e736963735f726f6f7430016c48656164657248617368466f723c446f6d61696e4865616465723e0000d902082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013000180124646f6d61696e5f6964cc0120446f6d61696e496400012c736c6f745f6e756d6265722c010c75363400013470726f6f665f6f665f74696d651d020124506f744f75747075740001347672665f7369676e6174757265dd0201305672665369676e617475726500012c6f70657261746f725f69642c01284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736830011443486173680000dd02101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66c101012056726650726f6f660000e102082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74300128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368300128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683001104861736800013c696e626f7865645f62756e646c6573e50201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74300128446f6d61696e4861736800013c657865637574696f6e5f74726163651501013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7430011048323536000128626c6f636b5f66656573f5020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f90201485472616e73666572733c42616c616e63653e0000e502000002e90200e902082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801300008011862756e646c65ed02015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74300110486173680000ed02082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013001081c496e76616c69640400f1020144496e76616c696442756e646c65547970650000001456616c696404003001104861736800010000f102082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020028496e76616c696458444d040010010c75333200030044496e686572656e7445787472696e736963040010010c75333200040000f502082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f902082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696efd02016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574fd02016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564fd02016842547265654d61703c436861696e49642c2042616c616e63653e0000fd02042042547265654d617008044b01f00456011800040001030000000103000002050300050300000408f0180009030c2873705f646f6d61696e730c617070245369676e617475726500000400bd010148737232353531393a3a5369676e617475726500000d03000002cd020011030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed01012858496e76616c696453746174655472616e736974696f6e0400150301e0496e76616c696453746174655472616e736974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00000048496e76616c69645472616e73616374696f6e04002d0301d0496e76616c69645472616e73616374696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0001004842756e646c6545717569766f636174696f6e0400310301cc42756e646c6545717569766f636174696f6e50726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00020070496d70726f7065725472616e73616374696f6e536f72746974696f6e0400350301f8496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00030040496e76616c6964426c6f636b466565730400390301c8496e76616c6964426c6f636b4665657350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00040054496e76616c696445787472696e73696373526f6f7404003d0301dc496e76616c696445787472696e73696373526f6f7450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0005002c56616c696442756e646c650400590301b456616c696442756e646c6550726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00060058496e76616c6964446f6d61696e426c6f636b4861736804005d0301e0496e76616c6964446f6d61696e426c6f636b4861736850726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00070038496e76616c696442756e646c65730400610301d4496e76616c696442756e646c6573467261756450726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e00080040496e76616c69645472616e73666572730400650301c8496e76616c69645472616e736665727350726f6f663c48656164657248617368466f723c446f6d61696e4865616465723e3e0009000015030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66042c5265636569707448617368013000100124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800011470726f6f661903013053746f7261676550726f6f6600013c657865637574696f6e5f706861736521030138457865637574696f6e5068617365000019030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465731d03014442547265655365743c5665633c75383e3e00001d030420425472656553657404045401340004003d0100000021030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f661903013053746f7261676550726f6f660001206d69736d61746368250301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463682903015446696e616c697a65426c6f636b4d69736d617463680002000025030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100002d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c69645472616e73616374696f6e50726f6f660428446f6d61696e48617368013000180124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f68617368300128446f6d61696e4861736800014c646f6d61696e5f626c6f636b5f6e756d62657210010c753332000144646f6d61696e5f626c6f636b5f68617368300128446f6d61696e48617368000144696e76616c69645f65787472696e73696334011c5665633c75383e00013473746f726167655f70726f6f661903013053746f7261676550726f6f66000031030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c42756e646c6545717569766f636174696f6e50726f6f660c184e756d62657201101048617368013030446f6d61696e48656164657201ed0100100124646f6d61696e5f6964cc0120446f6d61696e4964000110736c6f74dc0110536c6f7400013066697273745f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001347365636f6e645f686561646572d10201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000035030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6684496d70726f7065725472616e73616374696f6e536f72746974696f6e50726f6f66042c5265636569707448617368013000080124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c5265636569707448617368000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f6600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800015076616c69645f62756e646c655f64696765737473410301585665633c56616c696442756e646c654469676573743e0000410300000245030045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737449030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000049030000024d03004d03000004085103550300510304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100005503082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040034011c5665633c75383e00000010486173680400300110483235360001000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013062756e646c655f696e64657810010c75333200005d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c52656365697074486173680001506469676573745f73746f726167655f70726f6f661903013053746f7261676550726f6f66000061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6660496e76616c696442756e646c6573467261756450726f6f66042c52656365697074486173680130001801406261645f726563656970745f6861736830012c5265636569707448617368000124646f6d61696e5f6964cc0120446f6d61696e496400013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065f1020144496e76616c696442756e646c655479706500012870726f6f665f646174611903013053746f7261676550726f6f6600016c69735f747275655f696e76616c69645f66726175645f70726f6f66780110626f6f6c000065030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66042c52656365697074486173680130000c0124646f6d61696e5f6964cc0120446f6d61696e49640001406261645f726563656970745f6861736830012c526563656970744861736800013473746f726167655f70726f6f661903013053746f7261676550726f6f66000069030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400006d030c2873705f646f6d61696e730c617070185075626c6963000004009c013c737232353531393a3a5075626c6963000071030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000075030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6529010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687424011857656967687400015c62756e646c655f736c6f745f70726f626162696c69747925020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374790301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573810301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e00007903082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f727304007d03014c42547265655365743c4163636f756e7449643e000100007d03042042547265655365740404540100000400a10200000081030000028503008503000004088903180089030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e744964323004009d0201205b75383b2032305d0001000c526177040034011c5665633c75383e000200008d030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73780110626f6f6c0000048c536565205b6050616c6c65743a3a7365745f656e61626c655f646f6d61696e73605d2e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765780110626f6f6c000104cc536565205b6050616c6c65743a3a7365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765605d2e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273780110626f6f6c000204b4536565205b6050616c6c65743a3a7365745f656e61626c655f62616c616e63655f7472616e7366657273605d2e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73780110626f6f6c000304a8536565205b6050616c6c65743a3a7365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d00000458536565205b6050616c6c65743a3a636c61696d605d2e3c7665737465645f7472616e73666572080110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65e4015056657374696e675363686564756c654f663c543e00010480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e607570646174655f76657374696e675f7363686564756c657308010c77686f9502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573950301645665633c56657374696e675363686564756c654f663c543e3e000204a4536565205b6050616c6c65743a3a7570646174655f76657374696e675f7363686564756c6573605d2e24636c61696d5f666f72040110646573749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500030468536565205b6050616c6c65743a3a636c61696d5f666f72605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9503000002e40099030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964f0011c436861696e4964000118706172616d739d03018c496e6974696174654368616e6e656c506172616d733c42616c616e63654f663c543e3e00000484536565205b6050616c6c65743a3a696e6974696174655f6368616e6e656c605d2e34636c6f73655f6368616e6e656c080120636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c496400010478536565205b6050616c6c65743a3a636c6f73655f6368616e6e656c605d2e3472656c61795f6d65737361676504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e00020478536565205b6050616c6c65743a3a72656c61795f6d657373616765605d2e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367a503019c43726f7373446f6d61696e4d6573736167653c543a3a486173682c20543a3a4d6d72486173683e0003049c536565205b6050616c6c65743a3a72656c61795f6d6573736167655f726573706f6e7365605d2e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465c5030150436861696e416c6c6f776c697374557064617465000404c4536565205b6050616c6c65743a3a7570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374605d2e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964cc0120446f6d61696e4964000118757064617465c5030150436861696e416c6c6f776c697374557064617465000504dc536565205b6050616c6c65743a3a696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374605d2e5c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573c9030158446f6d61696e416c6c6f776c69737455706461746573000604a0536565205b6050616c6c65743a3a7570646174655f646f6d61696e5f616c6c6f776c697374605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c3073705f6d657373656e676572206d6573736167657354496e6974696174654368616e6e656c506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656ca10301444665654d6f64656c3c42616c616e63653e0000a1030c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e63650000a5030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d657373616765082843426c6f636b4861736801301c4d6d72486173680130001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011470726f6f66a903016850726f6f663c43426c6f636b486173682c204d6d72486173683e0001287765696768745f746167bd0301404d6573736167655765696768745461670000a9030c3073705f6d657373656e676572206d657373616765731450726f6f66082843426c6f636b4861736801301c4d6d72486173680130010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66ad0301bc436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f661903013053746f7261676550726f6f660001346d6573736167655f70726f6f661903013053746f7261676550726f6f6600010000ad030c3073705f6d657373656e676572206d6573736167657368436f6e73656e737573436861696e4d6d724c65616650726f6f660824426c6f636b4861736801301c4d6d72486173680130000c0150636f6e73656e7375735f626c6f636b5f68617368300124426c6f636b4861736800013c6f70617175655f6d6d725f6c656166b103014c456e636f6461626c654f70617175654c65616600011470726f6f66b50301444d6d7250726f6f663c4d6d72486173683e0000b103084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040034011c5665633c75383e0000b503084473705f6d6d725f7072696d6974697665731450726f6f660410486173680130000c01306c6561665f696e6469636573b90301385665633c4c656166496e6465783e0001286c6561665f636f756e742c01244e6f6465496e6465780001146974656d73150101245665633c486173683e0000b9030000022c00bd030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400c1030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400c1030120456e64706f696e74000300104e6f6e6500040000c1030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e7400010408496404002c0128456e64706f696e74496400000000c503084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400f0011c436861696e49640000001852656d6f76650400f0011c436861696e496400010000c903082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e73cd03014442547265655365743c436861696e49643e00013472656d6f76655f636861696e73cd03014442547265655365743c436861696e49643e0000cd030420425472656553657404045401f0000400d103000000d103000002f000d5030c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6ed90301204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e00000464536565205b6050616c6c65743a3a7472616e73666572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964f0011c436861696e49640001286163636f756e745f6964890301384d756c74694163636f756e7449640000dd030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cc102017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e2872656d6f76655f6b65790004046c536565205b6050616c6c65743a3a72656d6f76655f6b6579605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee103084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400e50301746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400e90301410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400010000e5030c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000e903081c73705f636f726510566f696400010000ed030c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef1030c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472793452756e74696d654f626a65637408184e756d6265720110104861736801300020013072756e74696d655f6e616d6529010118537472696e6700013072756e74696d655f74797065d0012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683001104861736800012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d6265720000f5030c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f70f903013847656e6573697353746f726167650001406368696c6472656e5f64656661756c740d04019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e0000f903042042547265654d617008044b01fd0304560101040004000504000000fd030c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040034011c5665633c75383e000001040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040034011c5665633c75383e00000504000002090400090400000408fd030104000d04042042547265654d617008044b01fd03045601f90300040011040000001104000002150400150400000408fd03f9030019040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680130000c012c7261775f67656e65736973f503012852617747656e6573697300011c76657273696f6e5d01013852756e74696d6556657273696f6e000110686173683001104861736800001d040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f724964012c1c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72732d04015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00002104042042547265654d617008044b012c04560118000400250400000025040000022904002904000004082c18002d0404204254726565536574040454012c000400b90300000031040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b65796d0301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964cc0120446f6d61696e49640001386e6578745f646f6d61696e5f6964cc0120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f7461787103011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573350401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000035040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d626572011001102852656769737465726564000000304465726567697374657265640400390401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c6173680003000039040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d62657200003d040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800cc0120446f6d61696e4964000010012845706f6368496e64657800004104000004082c3d040045040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004004904011c50657262696c6c000049040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200004d04000004082c000051040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e550401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e675904017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000055040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e63650000590404184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d0400000100005d040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63683d04012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000061040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73650401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f7368617265736d0401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e0000650400000269040069040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964cc0120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e636500006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d6504007104000001000071040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63683d04012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e6365000075040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680130244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736830012c5265636569707448617368000134646f6d61696e5f636f6e66696775030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666f79040144446f6d61696e52756e74696d65496e666f000079040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001040c45564d040120636861696e5f69642c012845564d436861696e4964000000007d0400000408cc100081040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013030446f6d61696e4e756d626572011028446f6d61696e4861736801301c42616c616e6365011800080144657865637574696f6e5f72656365697074e102010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f696473b903013c5665633c4f70657261746f7249643e000085040000040ccc10100089040000028d04008d04082873705f646f6d61696e733042756e646c654469676573740410486173680130000c012c6865616465725f686173683001104861736800013c65787472696e736963735f726f6f743001104861736800011073697a6510010c75333200009104083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72732104017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e636500009504082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013000140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368300128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368300128446f6d61696e4861736800012873746174655f726f6f74300128446f6d61696e4861736800013c65787472696e736963735f726f6f74300128446f6d61696e486173680000990400000408cc2c009d040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765a10401105532353600013c696e74657276616c5f626c6f636b732c010c753634000140696e74657276616c5f62756e646c65732c010c7536340000a104086073756273706163655f636f72655f7072696d697469766573105532353600000400a5040148707269766174655f753235363a3a553235360000a5040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f801205b7536343b20345d0000a90408346672616d655f737570706f72742050616c6c65744964000004006d01011c5b75383b20385d0000ad040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400011c28467261756450726f6f660400b104013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d6552656769737472790400b504015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400b90401305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400c10401445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e52656769737472790400c504014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b547265650400c9040138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e640400bd04015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200013c48426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c007c42616442756e646c6545717569766f636174696f6e467261756450726f6f66000d006442616452656365697074416c72656164795265706f72746564000e0000b5040c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e7449645479706500090000b9040c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b6579001800444d6178696d756d4e6f6d696e61746f72730019006c4475706c69636174654f70657261746f725369676e696e674b6579001a00784d697373696e674f70657261746f7245706f636853686172655072696365001b00444d697373696e675769746864726177616c001c004045706f63684e6f74436f6d706c657465001d005c556e6c6f636b506572696f644e6f74436f6d706c657465001e005c4f70657261746f724e6f74446572656769737465726564001f004442756e646c6553746f7261676546756e640400bd04016862756e646c655f73746f726167655f66756e643a3a4572726f7200200034556e636f6e6669726d6564455200210000bd040c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e7366657200050000c1040c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001107046696e616c697a655377697463684f70657261746f72446f6d61696e0400b904013c5472616e736974696f6e4572726f720000006846696e616c697a65446f6d61696e45706f63685374616b696e670400b904013c5472616e736974696f6e4572726f72000100544f70657261746f725265776172645374616b696e670400b904013c5472616e736974696f6e4572726f7200020034536c6173684f70657261746f720400b904013c5472616e736974696f6e4572726f7200030000c5040c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e657369730400b504017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f7700130000c9040c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200014c58496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e67455200120000cd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e4045300000400950301185665633c543e0000d1040c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed504084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964f401244368616e6e656c49640001147374617465d90401304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365f401144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365f401144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565a10301444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e65720d0101444f7074696f6e3c4163636f756e7449643e0000d904084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f73656400020000dd0404184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000e1040c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964f0011c436861696e49640001306473745f636861696e5f6964f0011c436861696e49640001286368616e6e656c5f6964f401244368616e6e656c49640001146e6f6e6365f401144e6f6e636500011c7061796c6f6164e504016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e6365dd0401344f7074696f6e3c4e6f6e63653e0000e5040c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e6365011801040856300400e90401405061796c6f61643c42616c616e63653e00000000e9040c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400ed0401290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e740400f50401c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e00010000ed040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f10420526573706f6e736501c001081c526571756573740400f104011c5265717565737400000020526573706f6e73650400c00120526573706f6e736500010000f1040c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e04009d030178496e6974696174654368616e6e656c506172616d733c42616c616e63653e000000304368616e6e656c436c6f736500010000f5040c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401f90420526573706f6e736501fd0401081c526571756573740400f904011c5265717565737400000020526573706f6e73650400fd040120526573706f6e736500010000f9040c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74c1030120456e64706f696e740001306473745f656e64706f696e74c1030120456e64706f696e7400011c7061796c6f616434013c456e64706f696e745061796c6f61640000fd040418526573756c740804540134044501640108084f6b040034000000000c4572720400640000010000010500000408f005010005050000040cf0f4f40009050c4070616c6c65745f6d657373656e676572206d6573736167657334426c6f636b4d6573736167657300000801186f7574626f780d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00013c696e626f785f726573706f6e7365730d0501ac5665633c28436861696e49642c204d65737361676549642c204d657373616765576569676874546167293e00000d0500000211050011050000040cf00501bd030015050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040019050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f727319050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200010c30496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f6465000200001d05084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e646572d90301204c6f636174696f6e0001207265636569766572d90301204c6f636174696f6e0000210500000408f0f00025050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e29050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e2d05102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c01c102245369676e6174757265013105144578747261014105000400340000003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c537232353531390400bd010148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e61747572650002000035050c1c73705f636f72651c65643235353139245369676e617475726500000400c10101205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d05000003410000000800410500000428450549054d05510555055d056105650569056d0500450510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000490510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000004d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000510510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000550510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004005905010c45726100005905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00005d0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040025010120543a3a4e6f6e63650000610510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000006505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e8013042616c616e63654f663c543e000069050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f72616765416363657373000000006d050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c657473000000007105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023019010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000210104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500001101040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002d01040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01310101541830426c6f636b576569676874734101f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746851013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687459014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5d01950320737562737061636520737562737061636500000000030000000000000040df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d020000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0100000091d5df18b0d2cf58020000000000000000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978710108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017501002454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0179010004344d696e696d756d506572696f642c20f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f740100dc2000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dc20000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007d01040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008d01040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e6765730100910148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501007804000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009901040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f740000dc0400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c4040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100780400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e4461746100009d010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f0000a1010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e676500002c040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000ad010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100b101040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000b1010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100cd01040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000e1010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010078040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01e501017c384c426c6f636b417574686f72696e6744656c6179dc200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c6179dc200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67652c20a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974792502400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e74730102200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e29024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d650102200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72710108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e012d0202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405303102040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505350215010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a434040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001a00000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401007804000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010039020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010039020400046420566f746572207375627369647920706172616d657465727301450201a8106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e42797465466565184085226bcb010000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f7465731d0120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004902040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402005902040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020065020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020085020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01910201ac14484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101000000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310106400000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a502053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a90280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01007804000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000ad0204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b410504d696e5265706c69636174696f6e466163746f727101083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918402837481a630627d05a7c07000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c6564676564184000296605df92d000000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a65184000a053f00d000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100b10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b5020400000001b804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b90201bc044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ed03081c446f6d61696e73011c446f6d61696e7380445375636365737366756c42756e646c657301010406cc1501040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e545375636365737366756c467261756450726f6f667301010406cc1501040004d82046726175642070726f6f6673207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401002c20107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d6552656769737472790001040610f103040000605363686564756c656452756e74696d65557067726164657300010806061d011904040000384e6578744f70657261746f72496401002c200000000000000000003c4f70657261746f7249644f776e6572000104062c00040000484f70657261746f725369676e696e674b6579000104066d032c040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406cc1d04040000244f70657261746f7273000104062c3104040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e5c50656e64696e674f70657261746f72537769746368657300010406cc2d0404000835012054656d706f7261727920686f6c64206f6620616c6c20746865206f70657261746f72732077686f206465636964656420746f2073776974636820746f20616e6f7468657220646f6d61696e2e5d01204f6e63652065706f636820697320636f6d706c6574652c207468657365206f70657261746f72732061726520616464656420746f206e657720646f6d61696e7320756e646572206e6578745f6f70657261746f72732e5c4f70657261746f7245706f636853686172655072696365000108060641044504040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f7369747300010806064d045104040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c7300010806064d046104040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104062c10100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406cc2d0404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406cc101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100cc1000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406cc7504040004502054686520646f6d61696e20726567697374727924426c6f636b5472656500010806067d04300400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f646573000104063081040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406cc101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406cc7804000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b4861736800010806067d043004001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606850489040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406302c04000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406cc1010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406cc9104040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406cc9504040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406990410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c617368656448446f6d61696e547852616e6765537461746500010406cc9d0404000001c50201c85448436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c69747925024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b57656967687424400b0098f73e5d0113ffffffffffffffbf04bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e67652c200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c2c20640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e344d61784e6f6d696e61746f727310100001000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220676976656e206f70657261746f722e185375646f496400803a2441e795639e09a33bf51199132d7ee10b9b67ebdb1ca30b14544c90018f7e045020546865207375646f206163636f756e742069642050616c6c65744964a90420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401ad040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010078040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010078040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301007804000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010078040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b010010100000000000018d030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c65730101040200cd0404000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01910301e004444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e01d1040d0c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d7200000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406f0f480000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c7300010806067d02d504040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f780000e1040400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040601051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406010518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104060505e10404000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104060505e10404000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e7365730000e104040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e34426c6f636b4d65737361676573000009050400082d0120412074656d706f726172792073746f7261676520746f2073746f726520616c6c20746865206d6573736167657320746f2062652072656c6179656420696e207468697320626c6f636b2ed42057696c6c20626520636c6561726564206f6e2074686520696e697469616c697a6174696f6e206f6e206e65787420626c6f636b2e38436861696e416c6c6f776c6973740100cd03040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406ccc903040008f820412074656d706f726172792073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e3d012057696c6c20626520636c656172656420696e20746865206e65787420626c6f636b206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652e01990301ec04444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e0115053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060601051d05040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406cc184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f902100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060621051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606210518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01d503010101000125053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01dd0301090100012905642d05042848436865636b4e6f6e5a65726f53656e6465724505c440436865636b5370656356657273696f6e49051038436865636b547856657273696f6e4d051030436865636b47656e6573697351053038436865636b4d6f7274616c69747955053028436865636b4e6f6e63655d05c42c436865636b5765696768746105c4604368617267655472616e73616374696f6e5061796d656e746505c448436865636b53746f726167654163636573736905c43844697361626c6550616c6c6574736d05c47105"} +{"specName":"subspace","specVersion":5,"blockNumber":2099554,"blockHash":"0xbb6b941fd6db6b777c958c73aaaf126a3bd5c1546d086a6078432c90e4160eaf","metadata":"0x6d6574610ec505000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650901011450686173650001146576656e7454010445000118746f706963730d0101185665633c543e000054084073756273706163655f72756e74696d653052756e74696d654576656e740001341853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e00000020537562737061636504007c017c70616c6c65745f73756273706163653a3a4576656e743c52756e74696d653e000200404f6666656e636573537562737061636504009c017c70616c6c65745f6f6666656e6365735f73756273706163653a3a4576656e740003001c526577617264730400a4017870616c6c65745f726577617264733a3a4576656e743c52756e74696d653e0004002042616c616e6365730400a8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e0005003c5472616e73616374696f6e466565730400b0019c70616c6c65745f7472616e73616374696f6e5f666565733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400b401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0007001c5574696c6974790400b8015470616c6c65745f7574696c6974793a3a4576656e740008001c446f6d61696e730400c4017870616c6c65745f646f6d61696e733a3a4576656e743c52756e74696d653e000c001c56657374696e670400d801706f726d6c5f76657374696e673a3a4576656e743c52756e74696d653e000d00244d657373656e6765720400e4018070616c6c65745f6d657373656e6765723a3a4576656e743c52756e74696d653e003c002c5472616e73706f727465720400f8018870616c6c65745f7472616e73706f727465723a3a4576656e743c52756e74696d653e003d00105375646f04000101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00640000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3c70616c6c65745f73756273706163651870616c6c6574144576656e740404540001084c5365676d656e7448656164657253746f7265640401387365676d656e745f6865616465728001345365676d656e74486561646572000004c05365676d656e7420686561646572207761732073746f72656420696e20626c6f636b636861696e20686973746f72792e284661726d6572566f74651001287075626c69635f6b657998013c4661726d65725075626c69634b65790001387265776172645f61646472657373000130543a3a4163636f756e744964000118686569676874100144426c6f636b4e756d626572466f723c543e00012c706172656e745f6861736834011c543a3a48617368000104304661726d657220766f74652e04304576656e747320747970652e80086073756273706163655f636f72655f7072696d697469766573345365676d656e744865616465720001040856301001347365676d656e745f696e6465788401305365676d656e74496e6465780001487365676d656e745f636f6d6d69746d656e748801445365676d656e74436f6d6d69746d656e74000160707265765f7365676d656e745f6865616465725f68617368040128426c616b65334861736800014c6c6173745f61726368697665645f626c6f636b9001444c6173744172636869766564426c6f636b00000000840c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473305365676d656e74496e6465780000040030010c7536340000880c6073756273706163655f636f72655f7072696d697469766573207365676d656e7473445365676d656e74436f6d6d69746d656e74000004008c01745b75383b205365676d656e74436f6d6d69746d656e743a3a53495a455d00008c00000330000000080090086073756273706163655f636f72655f7072696d697469766573444c6173744172636869766564426c6f636b00000801186e756d62657210012c426c6f636b4e756d62657200014461726368697665645f70726f67726573739401544172636869766564426c6f636b50726f6772657373000094086073756273706163655f636f72655f7072696d697469766573544172636869766564426c6f636b50726f677265737300010820436f6d706c6574650000001c5061727469616c040010010c75333200010000980c5473705f636f6e73656e7375735f73756273706163650c617070185075626c69630000040004013c737232353531393a3a5075626c696300009c0c6070616c6c65745f6f6666656e6365735f73756273706163651870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a001104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea0000003100000000800a40c3870616c6c65745f726577617264731870616c6c6574144576656e740404540001082c426c6f636b526577617264080130626c6f636b5f617574686f72000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e000004884973737565642072657761726420666f722074686520626c6f636b20617574686f7228566f7465526577617264080114766f746572000130543a3a4163636f756e74496400011872657761726418013042616c616e63654f663c543e0001046c4973737565642072657761726420666f722074686520766f746572045c6070616c6c65742d7265776172647360206576656e7473a80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573ac01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000b00c5c70616c6c65745f7472616e73616374696f6e5f666565731870616c6c6574144576656e7404045400010824426c6f636b4665657310010c77686f000130543a3a4163636f756e7449640490426c6f636b20617574686f7220746861742072656365697665642074686520666565732e011c73746f7261676518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c65637465642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0484416d6f756e74206f6620636f6c6c656374656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0464416d6f756e74206f6620636f6c6c656374656420746970732e00043453746f7261676520666565732e3c4275726e6564426c6f636b466565730c011c73746f7261676518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e65642073746f7261676520666565732e011c636f6d7075746518013042616c616e63654f663c543e0478416d6f756e74206f66206275726e656420636f6d7075746520666565732e01107469707318013042616c616e63654f663c543e0458416d6f756e74206f66206275726e656420746970732e01040d0146656573206275726e65642064756520746f2065717569766f636174656420626c6f636b20617574686f72206f722072657761726473206e6f7420656e61626c65642e04806070616c6c65742d7472616e73616374696f6e2d6665657360206576656e7473b40c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b80c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74bc01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0418526573756c7408045401c0044501680108084f6b0400c0000000000c4572720400680000010000c00000040000c40c3870616c6c65745f646f6d61696e731870616c6c6574144576656e740404540001543042756e646c6553746f7265640c0124646f6d61696e5f6964c80120446f6d61696e496400012c62756e646c655f686173683401104832353600013462756e646c655f617574686f723001284f70657261746f724964000004744120646f6d61696e2062756e646c652077617320696e636c756465642e50446f6d61696e52756e74696d654372656174656408012872756e74696d655f696410012452756e74696d65496400013072756e74696d655f74797065cc012c52756e74696d655479706500010074446f6d61696e52756e74696d65557067726164655363686564756c656408012872756e74696d655f696410012452756e74696d6549640001307363686564756c65645f6174100144426c6f636b4e756d626572466f723c543e00020054446f6d61696e52756e74696d65557067726164656404012872756e74696d655f696410012452756e74696d654964000300484f70657261746f725265676973746572656408012c6f70657261746f725f69643001284f70657261746f724964000124646f6d61696e5f6964c80120446f6d61696e4964000400444f70657261746f724e6f6d696e6174656408012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e00050048446f6d61696e496e7374616e746961746564040124646f6d61696e5f6964c80120446f6d61696e4964000600584f70657261746f725377697463686564446f6d61696e0801346f6c645f646f6d61696e5f6964c80120446f6d61696e49640001346e65775f646f6d61696e5f6964c80120446f6d61696e4964000700504f70657261746f7244657265676973746572656404012c6f70657261746f725f69643001284f70657261746f724964000800404f70657261746f72556e6c6f636b656404012c6f70657261746f725f69643001284f70657261746f7249640009003457697468647265775374616b6508012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000a003446756e6473556e6c6f636b65640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e000b00445072656665727265644f70657261746f7208012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000c00404f70657261746f72526577617264656408012c6f70657261746f725f69643001284f70657261746f72496400011872657761726418013042616c616e63654f663c543e000d00504f70657261746f72546178436f6c6c656374656408012c6f70657261746f725f69643001284f70657261746f72496400010c74617818013042616c616e63654f663c543e000e0050446f6d61696e45706f6368436f6d706c65746564080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e646578000f0068466f726365446f6d61696e45706f63685472616e736974696f6e080124646f6d61696e5f6964c80120446f6d61696e4964000154636f6d706c657465645f65706f63685f696e64657810012845706f6368496e6465780010004c467261756450726f6f6650726f636573736564080124646f6d61696e5f6964c80120446f6d61696e496400015c6e65775f686561645f726563656970745f6e756d626572d0017c4f7074696f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e3e00110078446f6d61696e4f70657261746f72416c6c6f774c69737455706461746564040124646f6d61696e5f6964c80120446f6d61696e49640012003c4f70657261746f72536c617368656408012c6f70657261746f725f69643001284f70657261746f724964000118726561736f6ed401e4536c6173686564526561736f6e3c446f6d61696e426c6f636b4e756d626572466f723c543e2c205265636569707448617368466f723c543e3e0013004c53746f726167654665654465706f73697465640c012c6f70657261746f725f69643001284f70657261746f7249640001306e6f6d696e61746f725f69640001384e6f6d696e61746f7249643c543e000118616d6f756e7418013042616c616e63654f663c543e001400047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c8082873705f646f6d61696e7320446f6d61696e49640000040010010c7533320000cc082873705f646f6d61696e732c52756e74696d65547970650001080c45766d000000184175746f496400010000d004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000d40c3870616c6c65745f646f6d61696e731870616c6c657434536c6173686564526561736f6e082c446f6d61696e426c6f636b01102c52656365697074486173680134010834496e76616c696442756e646c65040010012c446f6d61696e426c6f636b0000004c426164457865637574696f6e52656365697074040034012c526563656970744861736800010000d80c306f726d6c5f76657374696e67186d6f64756c65144576656e7404045400010c5056657374696e675363686564756c6541646465640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014076657374696e675f7363686564756c65dc015056657374696e675363686564756c654f663c543e0000046c4164646564206e65772076657374696e67207363686564756c652e1c436c61696d656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00010440436c61696d65642076657374696e672e5c56657374696e675363686564756c65735570646174656404010c77686f000130543a3a4163636f756e74496400020468557064617465642076657374696e67207363686564756c65732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc08306f726d6c5f76657374696e673c56657374696e675363686564756c65082c426c6f636b4e756d62657201101c42616c616e6365011800100114737461727410012c426c6f636b4e756d626572000118706572696f6410012c426c6f636b4e756d626572000130706572696f645f636f756e7410010c7533320001287065725f706572696f64e0011c42616c616e63650000e00000061800e40c4070616c6c65745f6d657373656e6765721870616c6c6574144576656e74040454000120404368616e6e656c496e69746961746564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0004d4456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320696e697469617465642e344368616e6e656c436c6f736564080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0104c8456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e7320697320636c6f7365642e2c4368616e6e656c4f70656e080120636861696e5f6964e8011c436861696e496404a8466f726569676e20636861696e2069642074686973206368616e6e656c20636f6e6e6563747320746f2e01286368616e6e656c5f6964ec01244368616e6e656c4964047c4368616e6e656c204944206f66207468652073616964206368616e6e656c2e0204bc456d697473207768656e2061206368616e6e656c206265747765656e2074776f20636861696e206973206f70656e2e344f7574626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000304c0456d697473207768656e2061206e6577206d65737361676520697320616464656420746f20746865206f7574626f782e544f7574626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000404f8456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f72204f7574626f78206d6573736167652e4c4f7574626f784d657373616765526573756c74100120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000118726573756c74f4014c4f7574626f784d657373616765526573756c7400050470456d697473206f7574626f78206d65737361676520726573756c742e30496e626f784d6573736167650c0120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e6365000604fc456d697473207768656e2061206e657720696e626f78206d6573736167652069732076616c69646174656420616e6420616464656420746f20496e626f782e50496e626f784d657373616765526573706f6e73650c0120636861696e5f6964e8011c436861696e4964045444657374696e6174696f6e20636861696e2049442e01286368616e6e656c5f6964ec01244368616e6e656c496404284368616e6e656c20497301146e6f6e6365ec01144e6f6e6365000704f4456d697473207768656e2061206d65737361676520726573706f6e736520697320617661696c61626c6520666f7220496e626f78206d6573736167652e04646070616c6c65742d6d657373656e67657260206576656e7473e8082873705f646f6d61696e731c436861696e496400010824436f6e73656e73757300000018446f6d61696e0400c80120446f6d61696e496400010000ec083c7072696d69746976655f7479706573105532353600000400f001205b7536343b20345d0000f0000003040000003000f4084070616c6c65745f6d657373656e6765724c4f7574626f784d657373616765526573756c74000108084f6b0000000c457272040068013444697370617463684572726f7200010000f80c4870616c6c65745f7472616e73706f727465721870616c6c6574144576656e74040454000110644f7574676f696e675472616e73666572496e69746961746564080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0004b0456d697473207768656e2074686572652069732061206e6577206f7574676f696e67207472616e736665722e584f7574676f696e675472616e736665724661696c65640c0120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e010c65727268013444697370617463684572726f7204784572726f722066726f6d206473745f636861696e20656e64706f696e742e0104f4456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173206661696c6564206f6e206473745f636861696e2e684f7574676f696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404ac44657374696e6174696f6e20636861696e20746865207472616e7366657220697320626f756e6420746f2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e0204d0456d697473207768656e206120676976656e206f7574676f696e67207472616e7366657220776173207375636365737366756c2e68496e636f6d696e675472616e736665725375636365737366756c080120636861696e5f6964e8011c436861696e496404a4536f7572636520636861696e20746865207472616e7366657220697320636f6d696e672066726f6d2e01286d6573736167655f6964fc01384d65737361676549644f663c543e044c4964206f6620746865207472616e736665722e03040101456d697473207768656e206120676976656e20696e636f6d696e67207472616e7366657220776173207375636365737366756c6c792070726f6365737365642e04944576656e747320656d69747465642062792070616c6c65742d7472616e73706f727465722efc00000408ecec0001010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64050101504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74bc01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000090108306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000d0100000234001101000002150100150100000408101000190108306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d652101016473705f72756e74696d653a3a52756e74696d65537472696e6700001d01000006100021010000050200250108306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000029010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d732d0101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973350101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d010000023101003101000004083838003501000002380039010c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173733d0101845065724469737061746368436c6173733c57656967687473506572436c6173733e00003d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014101000c01186e6f726d616c410101045400012c6f7065726174696f6e616c41010104540001246d616e6461746f72794101010454000041010c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963450101384f7074696f6e3c5765696768743e0001246d61785f746f74616c450101384f7074696f6e3c5765696768743e0001207265736572766564450101384f7074696f6e3c5765696768743e0000450104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000049010c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0101545065724469737061746368436c6173733c7533323e00004d010c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005101082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400005501082873705f76657273696f6e3852756e74696d6556657273696f6e0000240124737065635f6e616d652101013452756e74696d65537472696e67000124696d706c5f6e616d652101013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735901011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800015c65787472696e7369635f73746174655f76657273696f6e080108753800005901040c436f77040454015d010004005d010000005d01000002610100610100000408650110006501000003080000000800690100000504006d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657471010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c753634000079010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560175010453000004007d01013842547265654d61703c4b2c20563e00007d01042042547265654d617008044b011004560175010004008101000000810100000285010085010000040810750100890104284e6f6e5a65726f55333200000400100000008d01085473705f636f6e73656e7375735f737562737061636538536f6c7574696f6e52616e676573000010011c63757272656e7430010c7536340001106e6578749101012c4f7074696f6e3c7536343e000138766f74696e675f63757272656e7430010c75363400012c766f74696e675f6e6578749101012c4f7074696f6e3c7536343e0000910104184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000095010c3c70616c6c65745f73756273706163651870616c6c657454536f6c7574696f6e52616e67654f766572726964650000080138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e6765000154766f74696e675f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500009901083c70616c6c65745f737562737061636550566f7465566572696669636174696f6e446174610000100138736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500014c766f74655f736f6c7574696f6e5f72616e6765300134536f6c7574696f6e52616e676500013063757272656e745f736c6f7475010110536c6f7400012c706172656e745f736c6f7475010110536c6f7400009d0100000414986901a101a501750100a1010c6073756273706163655f636f72655f7072696d697469766573187069656365732c50696563654f6666736574000004006901010c7531360000a5010c6073756273706163655f636f72655f7072696d6974697665731863727970746f185363616c61720000040114696e6e6572040110467346720000a90100000418986901a101a50175010000ad01042042547265654d617008044b019d01045601b101000400bd01000000b1010000040800b50100b5010c5473705f636f6e73656e7375735f73756273706163650c617070245369676e617475726500000400b9010148737232353531393a3a5369676e61747572650000b901000003400000000800bd01000002c10100c101000004089d01b10100c501042042547265654d617008044b0110045601c901000400d101000000c9010c3c70616c6c65745f73756273706163651870616c6c65743c506f74456e74726f707956616c7565000008012c7461726765745f736c6f74cd0101304f7074696f6e3c536c6f743e00011c656e74726f7079040128426c616b6533486173680000cd0104184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000d101000002d50100d5010000040810c90100d901086073756273706163655f636f72655f7072696d6974697665732852616e646f6d6e6573730000040004015c5b75383b2052414e444f4d4e4553535f4c454e4754485d0000dd010c3c70616c6c65745f73756273706163651870616c6c65741043616c6c0404540001184c7265706f72745f65717569766f636174696f6e04014865717569766f636174696f6e5f70726f6f66e1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e0000185d015265706f7274206661726d65722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662e9c49662076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e005901546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c7920626c6f636b20617574686f72732077696c6c510163616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c20617320737563682069662074686520626c6f636b20617574686f7220697320646566696e6564206974b477696c6c20626520646566696e6564206173207468652065717569766f636174696f6e207265706f727465722e5473746f72655f7365676d656e745f6865616465727304013c7365676d656e745f68656164657273e90101485665633c5365676d656e744865616465723e00010859015375626d6974206e6577207365676d656e742068656164657220746f2074686520626c6f636b636861696e2e205468697320697320616e20696e686572656e742065787472696e73696320616e642070617274206f667474686520537562737061636520636f6e73656e737573206c6f6769632e80656e61626c655f736f6c7574696f6e5f72616e67655f61646a7573746d656e7408015c736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000178766f74696e675f736f6c7574696f6e5f72616e67655f6f766572726964659101012c4f7074696f6e3c7536343e000208c4456e61626c6520736f6c7574696f6e2072616e67652061646a7573746d656e74206166746572206576657279206572612ee44e6f74653a204e6f20656666656374206f6e2074686520736f6c7574696f6e2072616e676520666f72207468652063757272656e742065726110766f746504012c7369676e65645f766f7465ed0101e4426f783c5369676e6564566f74653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4163636f756e7449643e3e000304f84661726d657220766f74652c2063757272656e746c79206f6e6c79207573656420666f72206578747261207265776172647320746f206661726d6572732e44656e61626c655f726577617264735f6174040144656e61626c655f726577617264735f617419020188456e61626c655265776172647341743c426c6f636b4e756d626572466f723c543e3e000404f8456e61626c65207265776172647320666f7220626c6f636b7320616e6420766f7465732061742073706563696669656420626c6f636b206865696768742e68656e61626c655f617574686f72696e675f62795f616e796f6e6500050490456e61626c652073746f726167652061636365737320666f7220616c6c2075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201e5010849640198001001206f6666656e6465729801084964000110736c6f7475010110536c6f7400013066697273745f686561646572e50101184865616465720001347365636f6e645f686561646572e50101184865616465720000e501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000e9010000028000ed01085473705f636f6e73656e7375735f7375627370616365285369676e6564566f74650c184e756d6265720110104861736801343452657761726441646472657373010000080110766f7465f1010184566f74653c4e756d6265722c20486173682c20526577617264416464726573733e0001247369676e6174757265b501013c4661726d65725369676e61747572650000f101085473705f636f6e73656e7375735f737562737061636510566f74650c184e756d6265720110104861736801343452657761726441646472657373010001040856301801186865696768741001184e756d62657200012c706172656e745f6861736834011048617368000110736c6f7475010110536c6f74000120736f6c7574696f6ef50101a0536f6c7574696f6e3c4661726d65725075626c69634b65792c20526577617264416464726573733e00013470726f6f665f6f665f74696d6515020124506f744f75747075740001506675747572655f70726f6f665f6f665f74696d6515020124506f744f757470757400000000f501086073756273706163655f636f72655f7072696d69746976657320536f6c7574696f6e08245075626c69634b6579019834526577617264416464726573730100002801287075626c69635f6b65799801245075626c69634b65790001387265776172645f6164647265737300013452657761726441646472657373000130736563746f725f696e6465786901012c536563746f72496e646578000130686973746f72795f73697a65f901012c486973746f727953697a6500013070696563655f6f6666736574a101012c50696563654f66667365740001447265636f72645f636f6d6d69746d656e74010201405265636f7264436f6d6d69746d656e740001387265636f72645f7769746e657373050201345265636f72645769746e6573730001146368756e6ba50101185363616c61720001346368756e6b5f7769746e657373090201304368756e6b5769746e65737300013870726f6f665f6f665f73706163650d020120506f7350726f6f660000f9010c6073756273706163655f636f72655f7072696d697469766573207365676d656e74732c486973746f727953697a6500000400fd0101284e6f6e5a65726f5536340000fd0104284e6f6e5a65726f553634000004003000000001020c6073756273706163655f636f72655f7072696d69746976657318706965636573405265636f7264436f6d6d69746d656e74000004008c01705b75383b205265636f7264436f6d6d69746d656e743a3a53495a455d000005020c6073756273706163655f636f72655f7072696d69746976657318706965636573345265636f72645769746e657373000004008c01645b75383b205265636f72645769746e6573733a3a53495a455d000009020c6073756273706163655f636f72655f7072696d69746976657318706965636573304368756e6b5769746e657373000004008c01605b75383b204368756e6b5769746e6573733a3a53495a455d00000d02086073756273706163655f636f72655f7072696d69746976657320506f7350726f6f6600000400110201405b75383b2053656c663a3a53495a455d00001102000003a000000008001502086073756273706163655f636f72655f7072696d69746976657324506f744f757470757400000400a001405b75383b2053656c663a3a53495a455d000019020c3c70616c6c65745f73756273706163651870616c6c65743c456e61626c65526577617264734174042c426c6f636b4e756d6265720110010c184865696768740400d0014c4f7074696f6e3c426c6f636b4e756d6265723e00000034536f6c7574696f6e52616e6765040030010c753634000100204d616e75616c6c79000200001d0200000408303000210200000408f901f9010025020c3c70616c6c65745f73756273706163651870616c6c6574144572726f7204045400010c584475706c69636174654f6666656e63655265706f727400000415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e94536f6c7574696f6e52616e676541646a7573746d656e74416c7265616479456e61626c6564000104a8536f6c7574696f6e2072616e67652061646a7573746d656e7420616c726561647920656e61626c65642e5452657761726473416c7265616479456e61626c65640002045c5265776172647320616c7265616479206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5473705f636f6e73656e7375735f73756273706163651c6f6666656e6365384f6666656e636544657461696c7304204f6666656e6465720198000401206f6666656e6465729801204f6666656e64657200002d0200000408a0380031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013502045300000400390201185665633c543e00003502083870616c6c65745f726577617264732c526577617264506f696e74082c426c6f636b4e756d62657201101c42616c616e6365011800080114626c6f636b10012c426c6f636b4e756d62657200011c7375627369647918011c42616c616e6365000039020000023502003d020c3870616c6c65745f726577617264731870616c6c65741043616c6c040454000104587570646174655f69737375616e63655f706172616d7308015c70726f706f7365725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000150766f7465725f737562736964795f706f696e74733102013901426f756e6465645665633c526577617264506f696e743c426c6f636b4e756d626572466f723c543e2c2042616c616e63654f663c543e3e2c20543a3a0a4d6178526577617264506f696e74732c3e000004885570646174652064796e616d69632069737375616e636520706172616d6574657273040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41020c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540145020453000004004d0201185665633c543e000045020c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964650101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e734902011c526561736f6e73000049020c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200004d0200000245020051020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015502045300000400590201185665633c543e000055020c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720165011c42616c616e6365011800080108696465010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000059020000025502005d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016102045300000400790201185665633c543e000061020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640165021c42616c616e63650118000801086964650201084964000118616d6f756e7418011c42616c616e636500006502084073756273706163655f72756e74696d6538486f6c644964656e7469666965720001081c446f6d61696e73040069020154446f6d61696e73486f6c644964656e746966696572000000244d657373656e67657204007102015c4d657373656e676572486f6c644964656e746966696572000100006902082873705f646f6d61696e7354446f6d61696e73486f6c644964656e74696669657200010c1c5374616b696e6704006d0201545374616b696e67486f6c644964656e7469666965720000004c446f6d61696e496e7374616e74696174696f6e0400c80120446f6d61696e49640001002c53746f7261676546756e6404003001284f70657261746f724964000200006d02082873705f646f6d61696e73545374616b696e67486f6c644964656e746966696572000104185374616b656404003001284f70657261746f724964000000007102082873705f646f6d61696e735c4d657373656e676572486f6c644964656e7469666965720001041c4368616e6e656c04007502015028436861696e49642c204368616e6e656c49642900000000750200000408e8ec0079020000026102007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018102045300000400850201185665633c543e000081020c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c01c42616c616e63650118000801086964c001084964000118616d6f756e7418011c42616c616e63650000850200000281020089020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e00128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f990201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e00128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c7461e00128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801c0011408496404000001244163636f756e74496400000014496e6465780400910201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400950201205b75383b2032305d000400009102000006c0009502000003140000000800990200000200009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea502086c73756273706163655f72756e74696d655f7072696d6974697665735c426c6f636b5472616e73616374696f6e42797465466565041c42616c616e636501180008011c63757272656e7418011c42616c616e63650001106e65787418011c42616c616e63650000a902085c70616c6c65745f7472616e73616374696f6e5f6665657334436f6c6c656374656446656573041c42616c616e63650118000c011c73746f7261676518011c42616c616e636500011c636f6d7075746518011c42616c616e63650001107469707318011c42616c616e63650000ad020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000b102086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000b5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465786901010c75313600011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e15040154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73b902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb902000002bd0200bd02084073756273706163655f72756e74696d652c52756e74696d6543616c6c0001301853797374656d0400290101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000002454696d657374616d700400710101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0001002053756273706163650400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53756273706163652c2052756e74696d653e0002001c5265776172647304003d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526577617264732c2052756e74696d653e0004002042616c616e6365730400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5574696c6974790400b50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0008001c446f6d61696e730400c10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c446f6d61696e732c2052756e74696d653e000c003852756e74696d65436f6e666967730400d50301cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52756e74696d65436f6e666967732c2052756e74696d653e000e001c56657374696e670400d90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000d00244d657373656e6765720400e10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d657373656e6765722c2052756e74696d653e003c002c5472616e73706f727465720400090401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73706f727465722c2052756e74696d653e003d00105375646f0400110401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00640000c1020c3870616c6c65745f646f6d61696e731870616c6c65741043616c6c040454000138347375626d69745f62756e646c650401346f70617175655f62756e646c65c50201444f706171756542756e646c654f663c543e000000487375626d69745f66726175645f70726f6f6604012c66726175645f70726f6f660d030154426f783c467261756450726f6f66466f723c543e3e000f005c72656769737465725f646f6d61696e5f72756e74696d650c013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014c7261775f67656e657369735f73746f7261676538011c5665633c75383e00020058757067726164655f646f6d61696e5f72756e74696d6508012872756e74696d655f696410012452756e74696d65496400014c7261775f67656e657369735f73746f7261676538011c5665633c75383e0003004472656769737465725f6f70657261746f72100124646f6d61696e5f6964c80120446f6d61696e4964000118616d6f756e7418013042616c616e63654f663c543e000118636f6e666967ad0301704f70657261746f72436f6e6669673c42616c616e63654f663c543e3e0001787369676e696e675f6b65795f70726f6f665f6f665f6f776e657273686970050301444f70657261746f725369676e6174757265000400446e6f6d696e6174655f6f70657261746f7208012c6f70657261746f725f69643001284f70657261746f724964000118616d6f756e7418013042616c616e63654f663c543e00050048696e7374616e74696174655f646f6d61696e040134646f6d61696e5f636f6e666967b90301a0446f6d61696e436f6e6669673c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0006004c646572656769737465725f6f70657261746f7204012c6f70657261746f725f69643001284f70657261746f7249640008003877697468647261775f7374616b6508012c6f70657261746f725f69643001284f70657261746f724964000118736861726573180120543a3a536861726500090030756e6c6f636b5f66756e647304012c6f70657261746f725f69643001284f70657261746f724964000a0c1101556e6c6f636b7320746865206669727374207769746864726177616c20676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e19014576656e2069662072657374206f6620746865207769746864726177616c7320617265206f7574206f6620756e6c6f636b696e6720706572696f642c206e6f6d696e61746f72d073686f756c642063616c6c20746869732065787472696e73696320746f20756e6c6f636b2065616368207769746864726177616c40756e6c6f636b5f6e6f6d696e61746f7204012c6f70657261746f725f69643001284f70657261746f724964000b084901556e6c6f636b7320746865206e6f6d696e61746f7220756e64657220676976656e206f70657261746f7220676976656e2074686520756e6c6f636b696e6720706572696f6420697320636f6d706c6574652e350141206e6f6d696e61746f722063616e20696e69746961746520746865697220756e6c6f636b20676976656e206f70657261746f7220697320616c7265616479206465726567697374657265642e847570646174655f646f6d61696e5f6f70657261746f725f616c6c6f775f6c697374080124646f6d61696e5f6964c80120446f6d61696e496400014c6f70657261746f725f616c6c6f775f6c697374bd03017c4f70657261746f72416c6c6f774c6973743c543a3a4163636f756e7449643e000c1cc445787472696e73696320746f2075706461746520646f6d61696e2773206f70657261746f7220616c6c6f77206c6973742e144e6f74653a55012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f207370656369666963206f70657261746f727320616e64206e657720616c6c6f77206c6973742069732073657439012020746f2060416e796f6e65602c207468656e20646f6d61696e2077696c6c206265636f6d65207065726d697373696f6e656420746f206f70656e20666f7220616c6c206f70657261746f72732e4d012d204966207468652070726576696f757320616c6c6f776564206c6973742069732073657420746f2060416e796f6e6560206f72207370656369666963206f70657261746f727320616e6420746865206e657761012020616c6c6f77206c6973742069732073657420746f207370656369666963206f70657261746f72732c207468656e20616c6c207468652072656769737465726564206e6f7420616c6c6f776564206f70657261746f7273f4202077696c6c20636f6e74696e756520746f206f70657261746520756e74696c20746865792064652d7265676973746572207468656d73656c7665732e78666f7263655f7374616b696e675f65706f63685f7472616e736974696f6e040124646f6d61696e5f6964c80120446f6d61696e4964000d04c4466f726365207374616b696e672065706f6368207472616e736974696f6e20666f72206120676976656e20646f6d61696e887365745f7065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f62790401787065726d697373696f6e65645f616374696f6e5f616c6c6f7765645f6279d10301d473705f646f6d61696e733a3a5065726d697373696f6e6564416374696f6e416c6c6f77656442793c543a3a4163636f756e7449643e000e04d8557064617465207065726d697373696f6e656420616374696f6e20616c6c6f7765642062792073746f72616765206279205375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec502082873705f646f6d61696e731842756e646c65142445787472696e73696301c902184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000801347365616c65645f686561646572cd0201dc5365616c656442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00012865787472696e73696373090301385665633c45787472696e7369633e0000c902082873705f72756e74696d653c4f706171756545787472696e7369630000040038011c5665633c75383e0000cd02082873705f646f6d61696e73485365616c656442756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e6365011800080118686561646572d10201c442756e646c654865616465723c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001247369676e6174757265050301444f70657261746f725369676e61747572650000d102082873705f646f6d61696e733042756e646c6548656164657210184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e636501180010014470726f6f665f6f665f656c656374696f6ed502015450726f6f664f66456c656374696f6e3c486173683e00011c72656365697074dd02019101457865637574696f6e526563656970743c4e756d6265722c20486173682c204865616465724e756d626572466f723c446f6d61696e4865616465723e2c0a48656164657248617368466f723c446f6d61696e4865616465723e2c2042616c616e63652c3e00015c657374696d617465645f62756e646c655f77656967687428011857656967687400015862756e646c655f65787472696e736963735f726f6f7434016c48656164657248617368466f723c446f6d61696e4865616465723e0000d502082873705f646f6d61696e733c50726f6f664f66456c656374696f6e04144348617368013400180124646f6d61696e5f6964c80120446f6d61696e496400012c736c6f745f6e756d62657230010c75363400013470726f6f665f6f665f74696d6515020124506f744f75747075740001347672665f7369676e6174757265d90201305672665369676e617475726500012c6f70657261746f725f69643001284f70657261746f724964000150636f6e73656e7375735f626c6f636b5f6861736834011443486173680000d902101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66b901012056726650726f6f660000dd02082873705f646f6d61696e7340457865637574696f6e5265636569707414184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e636501180030014c646f6d61696e5f626c6f636b5f6e756d626572100130446f6d61696e4e756d626572000144646f6d61696e5f626c6f636b5f68617368340128446f6d61696e4861736800016c646f6d61696e5f626c6f636b5f65787472696e7369635f726f6f74340128446f6d61696e48617368000180706172656e745f646f6d61696e5f626c6f636b5f726563656970745f68617368340128446f6d61696e48617368000158636f6e73656e7375735f626c6f636b5f6e756d6265721001184e756d626572000150636f6e73656e7375735f626c6f636b5f686173683401104861736800013c696e626f7865645f62756e646c6573e10201785665633c496e626f78656442756e646c653c446f6d61696e486173683e3e00014066696e616c5f73746174655f726f6f74340128446f6d61696e4861736800013c657865637574696f6e5f74726163650d01013c5665633c446f6d61696e486173683e000150657865637574696f6e5f74726163655f726f6f7434011048323536000128626c6f636b5f66656573f1020148426c6f636b466565733c42616c616e63653e0001247472616e7366657273f50201485472616e73666572733c42616c616e63653e0000e102000002e50200e502082873705f646f6d61696e7334496e626f78656442756e646c6504104861736801340008011862756e646c65e902015042756e646c6556616c69646974793c486173683e00013c65787472696e736963735f726f6f74340110486173680000e902082873705f646f6d61696e733842756e646c6556616c6964697479041048617368013401081c496e76616c69640400ed020144496e76616c696442756e646c65547970650000001456616c696404003401104861736800010000ed02082873705f646f6d61696e7344496e76616c696442756e646c655479706500011434556e6465636f6461626c655478040010010c753332000000304f75744f6652616e67655478040010010c75333200010024496c6c6567616c5478040010010c75333200020044496e686572656e7445787472696e736963040010010c7533320004004c496e76616c696442756e646c6557656967687400050000f102082873705f646f6d61696e7324426c6f636b46656573041c42616c616e63650118000c0154636f6e73656e7375735f73746f726167655f66656518011c42616c616e6365000150646f6d61696e5f657865637574696f6e5f66656518011c42616c616e63650001386275726e65645f62616c616e636518011c42616c616e63650000f502082873705f646f6d61696e73245472616e7366657273041c42616c616e63650118001001307472616e73666572735f696ef902016842547265654d61703c436861696e49642c2042616c616e63653e0001347472616e73666572735f6f7574f902016842547265654d61703c436861696e49642c2042616c616e63653e00016872656a65637465645f7472616e73666572735f636c61696d6564f902016842547265654d61703c436861696e49642c2042616c616e63653e0001487472616e73666572735f72656a6563746564f902016842547265654d61703c436861696e49642c2042616c616e63653e0000f902042042547265654d617008044b01e804560118000400fd02000000fd02000002010300010300000408e8180005030c2873705f646f6d61696e730c617070245369676e617475726500000400b9010148737232353531393a3a5369676e617475726500000903000002c902000d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6628467261756450726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c4d6d7248617368013400140124646f6d61696e5f6964c80120446f6d61696e49640001406261645f726563656970745f6861736834016c48656164657248617368466f723c446f6d61696e4865616465723e00013c6d617962655f6d6d725f70726f6f66110301e44f7074696f6e3c436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e3e00017c6d617962655f646f6d61696e5f72756e74696d655f636f64655f70726f6f66250301c84f7074696f6e3c446f6d61696e52756e74696d65436f646541743c4e756d6265722c20486173682c204d6d72486173683e3e00011470726f6f66390301b4467261756450726f6f6656617269616e743c4e756d6265722c20486173682c20446f6d61696e4865616465723e0000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d650400150300000100001503083c73705f73756273706163655f6d6d7268436f6e73656e737573436861696e4d6d724c65616650726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d7248617368013400100158636f6e73656e7375735f626c6f636b5f6e756d62657210013043426c6f636b4e756d626572000150636f6e73656e7375735f626c6f636b5f6861736834012843426c6f636b4861736800013c6f70617175655f6d6d725f6c6561661903014c456e636f6461626c654f70617175654c65616600011470726f6f661d0301444d6d7250726f6f663c4d6d72486173683e00001903084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00001d03084473705f6d6d725f7072696d6974697665731450726f6f660410486173680134000c01306c6561665f696e6469636573210301385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d730d0101245665633c486173683e000021030000023000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c446f6d61696e52756e74696d65436f646541740c184e756d6265720110104861736801341c4d6d72486173680134000801246d6d725f70726f6f66150301c4436f6e73656e737573436861696e4d6d724c65616650726f6f663c4e756d6265722c20486173682c204d6d72486173683e000164646f6d61696e5f72756e74696d655f636f64655f70726f6f662d030158446f6d61696e52756e74696d65436f646550726f6f6600002d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6658446f6d61696e52756e74696d65436f646550726f6f66000004003103013053746f7261676550726f6f66000031030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733503014442547265655365743c5665633c75383e3e00003503042042547265655365740404540138000400350100000039030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6644467261756450726f6f6656617269616e740c184e756d62657201101048617368013430446f6d61696e48656164657201e501011c58496e76616c696453746174655472616e736974696f6e04003d03016c496e76616c696453746174655472616e736974696f6e50726f6f660000002c56616c696442756e646c6504004d0301b056616c696442756e646c6550726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00010054496e76616c696445787472696e73696373526f6f74040059030168496e76616c696445787472696e73696373526f6f7450726f6f6600020038496e76616c696442756e646c65730400990301bc496e76616c696442756e646c657350726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465723e00030058496e76616c6964446f6d61696e426c6f636b486173680400a103016c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600040040496e76616c6964426c6f636b466565730400a5030154496e76616c6964426c6f636b4665657350726f6f6600050040496e76616c69645472616e73666572730400a9030154496e76616c69645472616e736665727350726f6f66000600003d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c696453746174655472616e736974696f6e50726f6f66000008013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600013c657865637574696f6e5f706861736541030138457865637574696f6e5068617365000041030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6638457865637574696f6e506861736500010c3c496e697469616c697a65426c6f636b000000384170706c7945787472696e73696308013c65787472696e7369635f70726f6f663103013053746f7261676550726f6f660001206d69736d61746368450301584170706c7945787472696e7369634d69736d617463680001003446696e616c697a65426c6f636b0401206d69736d617463684903015446696e616c697a65426c6f636b4d69736d617463680002000045030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f66584170706c7945787472696e7369634d69736d61746368000108245374617465526f6f74040010010c7533320000001c53686f727465720001000049030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665446696e616c697a65426c6f636b4d69736d61746368000108245374617465526f6f74000000184c6f6e676572040010010c753332000100004d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664056616c696442756e646c6550726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010004014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e000051030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66544f706171756542756e646c655769746850726f6f6610184e756d62657201101048617368013430446f6d61696e48656164657201e5011c42616c616e63650118000c011862756e646c65c50201c44f706171756542756e646c653c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013062756e646c655f696e64657810010c75333200015062756e646c655f73746f726167655f70726f6f66550301585375636365737366756c42756e646c657350726f6f66000055030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f66585375636365737366756c42756e646c657350726f6f66000004003103013053746f7261676550726f6f66000059030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6668496e76616c696445787472696e73696373526f6f7450726f6f6600000c015076616c69645f62756e646c655f646967657374735d0301585665633c56616c696442756e646c654469676573743e000158626c6f636b5f72616e646f6d6e6573735f70726f6f6675030150426c6f636b52616e646f6d6e65737350726f6f66000190646f6d61696e5f696e686572656e745f65787472696e7369635f646174615f70726f6f6679030180446f6d61696e496e686572656e7445787472696e7369634461746150726f6f6600005d0300000261030061030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664456616c696442756e646c65446967657374000008013062756e646c655f696e64657810010c75333200013462756e646c655f64696765737465030139015665633c0a284f7074696f6e3c646f6d61696e5f72756e74696d655f7072696d6974697665733a3a6f70617175653a3a4163636f756e7449643e2c0a45787472696e7369634469676573742c293e000065030000026903006903000004086d037103006d0304184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100007103082873705f646f6d61696e733c45787472696e7369634469676573740001081044617461040038011c5665633c75383e00000010486173680400340110483235360001000075030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6650426c6f636b52616e646f6d6e65737350726f6f66000004003103013053746f7261676550726f6f66000079030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680446f6d61696e496e686572656e7445787472696e7369634461746150726f6f66000014013c74696d657374616d705f70726f6f667d03015454696d657374616d7053746f7261676550726f6f660001886d617962655f646f6d61696e5f72756e74696d655f757067726164655f70726f6f668103017c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f6600017464796e616d69635f636f73745f6f665f73746f726167655f70726f6f668d03016444796e616d6963436f73744f6653746f7261676550726f6f66000178636f6e73656e7375735f636861696e5f627974655f6665655f70726f6f6691030180436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000170646f6d61696e5f636861696e5f616c6c6f776c6973745f70726f6f669503019c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f6600007d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f665454696d657374616d7053746f7261676550726f6f66000004003103013053746f7261676550726f6f66000081030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f667c4d61796265446f6d61696e52756e74696d65557067726164656450726f6f660000080130626c6f636b5f64696765737485030140426c6f636b44696765737450726f6f6600015c6e65775f646f6d61696e5f72756e74696d655f636f6465890301784f7074696f6e3c446f6d61696e52756e74696d65436f646550726f6f663e000085030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6640426c6f636b44696765737450726f6f66000004003103013053746f7261676550726f6f660000890304184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d0300000100008d030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f666444796e616d6963436f73744f6653746f7261676550726f6f66000004003103013053746f7261676550726f6f66000091030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6680436f6e73656e7375735472616e73616374696f6e4279746546656550726f6f66000004003103013053746f7261676550726f6f66000095030c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f669c446f6d61696e436861696e73416c6c6f776c69737455706461746553746f7261676550726f6f66000004003103013053746f7261676550726f6f66000099030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f664c496e76616c696442756e646c657350726f6f660c184e756d62657201101048617368013430446f6d61696e48656164657201e5010010013062756e646c655f696e64657810010c75333200014c696e76616c69645f62756e646c655f74797065ed020144496e76616c696442756e646c655479706500016c69735f747275655f696e76616c69645f66726175645f70726f6f66200110626f6f6c00012870726f6f665f646174619d0301cc496e76616c696442756e646c657350726f6f66446174613c4e756d6265722c20486173682c20446f6d61696e4865616465723e00009d030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f665c496e76616c696442756e646c657350726f6f66446174610c184e756d62657201101048617368013430446f6d61696e48656164657201e501010c2445787472696e73696304003103013053746f7261676550726f6f660000001842756e646c650400510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e0001004842756e646c65416e64457865637574696f6e08014462756e646c655f776974685f70726f6f66510301e84f706171756542756e646c655769746850726f6f663c4e756d6265722c20486173682c20446f6d61696e4865616465722c2042616c616e63653e00013c657865637574696f6e5f70726f6f663103013053746f7261676550726f6f6600020000a1030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f666c496e76616c6964446f6d61696e426c6f636b4861736850726f6f6600000401506469676573745f73746f726167655f70726f6f663103013053746f7261676550726f6f660000a5030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c6964426c6f636b4665657350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000a9030c5873705f646f6d61696e735f66726175645f70726f6f662c66726175645f70726f6f6654496e76616c69645472616e736665727350726f6f66000004013473746f726167655f70726f6f663103013053746f7261676550726f6f660000ad030c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f72436f6e666967041c42616c616e63650118000c012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e740000b1030c2873705f646f6d61696e730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b5030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000b9030c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e436f6e66696708244163636f756e74496401001c42616c616e636501180020012c646f6d61696e5f6e616d6521010118537472696e6700012872756e74696d655f696410012452756e74696d6549640001386d61785f626c6f636b5f73697a6510010c7533320001406d61785f626c6f636b5f77656967687428011857656967687400015c62756e646c655f736c6f745f70726f626162696c6974791d020128287536342c20753634290001607461726765745f62756e646c65735f7065725f626c6f636b10010c75333200014c6f70657261746f725f616c6c6f775f6c697374bd0301704f70657261746f72416c6c6f774c6973743c4163636f756e7449643e000140696e697469616c5f62616c616e636573c50301785665633c284d756c74694163636f756e7449642c2042616c616e6365293e0000bd03082873705f646f6d61696e73444f70657261746f72416c6c6f774c69737404244163636f756e7449640100010818416e796f6e65000000244f70657261746f72730400c103014c42547265655365743c4163636f756e7449643e00010000c1030420425472656553657404045401000004009902000000c503000002c90300c90300000408cd031800cd030864646f6d61696e5f72756e74696d655f7072696d697469766573384d756c74694163636f756e74496400010c2c4163636f756e744964333204000401205b75383b2033325d0000002c4163636f756e74496432300400950201205b75383b2032305d0001000c526177040038011c5665633c75383e00020000d103082873705f646f6d61696e736c5065726d697373696f6e6564416374696f6e416c6c6f776564427904244163636f756e74496401000108204163636f756e74730400990201385665633c4163636f756e7449643e00000018416e796f6e6500010000d5030c5870616c6c65745f72756e74696d655f636f6e666967731870616c6c65741043616c6c040454000110487365745f656e61626c655f646f6d61696e73040138656e61626c655f646f6d61696e73200110626f6f6c000004704368616e676520656e61626c6520646f6d61696e732073746174652e887365745f656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765040178656e61626c655f64796e616d69635f636f73745f6f665f73746f72616765200110626f6f6c000104a8456e61626c65206f722064697361626c652064796e616d696320636f7374206f662073746f726167652e707365745f656e61626c655f62616c616e63655f7472616e7366657273040160656e61626c655f62616c616e63655f7472616e7366657273200110626f6f6c000204c8456e61626c65206f722064697361626c652062616c616e6365207472616e736665727320666f7220616c6c2075736572732e647365745f656e61626c655f6e6f6e5f726f6f745f63616c6c73040154656e61626c655f6e6f6e5f726f6f745f63616c6c73200110626f6f6c000304b0456e61626c65206f722064697361626c652063616c6c732066726f6d206e6f6e2d726f6f742075736572732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c306f726d6c5f76657374696e67186d6f64756c651043616c6c04045400011014636c61696d0000003c7665737465645f7472616e73666572080110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001207363686564756c65dc015056657374696e675363686564756c654f663c543e000100607570646174655f76657374696e675f7363686564756c657308010c77686f8d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636500014476657374696e675f7363686564756c6573dd0301645665633c56657374696e675363686564756c654f663c543e3e00020024636c61696d5f666f72040110646573748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd03000002dc00e1030c4070616c6c65745f6d657373656e6765721870616c6c65741043616c6c04045400011c40696e6974696174655f6368616e6e656c0801306473745f636861696e5f6964e8011c436861696e4964000118706172616d73e5030154496e6974696174654368616e6e656c506172616d7300000cc041206e6577204368616e6e656c20697320696e697469617465642077697468206120666f726569676e20636861696e2ec84e657874204368616e6e656c204944206973207573656420746f2061737369676e20746865206e6577206368616e6e656c2e19014368616e6e656c2069732073657420746f20696e6974696174656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e34636c6f73655f6368616e6e656c080120636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c4964000108bc416e206f70656e206368616e6e656c20697320636c6f7365642077697468206120666f726569676e20636861696e2e0d014368616e6e656c2069732073657420746f20436c6f73656420616e6420646f206e6f7420616363657074206f72207265636569766520616e79206d657373616765732e3472656c61795f6d65737361676504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e0002040d01526563656976657320616e20496e626f78206d6573736167652074686174206e6565647320746f2062652076616c69646174656420616e642070726f6365737365642e5872656c61795f6d6573736167655f726573706f6e736504010c6d7367e90301e843726f7373446f6d61696e4d6573736167653c426c6f636b4e756d626572466f723c543e2c20543a3a486173682c20543a3a4d6d72486173683e000304fc5265636569766573206120726573706f6e73652066726f6d20746865206473745f636861696e20666f722061206d65737361676520696e204f7574626f782e807570646174655f636f6e73656e7375735f636861696e5f616c6c6f776c697374040118757064617465f9030150436861696e416c6c6f776c697374557064617465000404b0412063616c6c20746f2075706461746520636f6e73656e73757320636861696e20616c6c6f77206c6973742e98696e6974696174655f646f6d61696e5f7570646174655f636861696e5f616c6c6f776c697374080124646f6d61696e5f6964c80120446f6d61696e4964000118757064617465f9030150436861696e416c6c6f776c697374557064617465000504d0412063616c6c20746f20696e69746961746520636861696e20616c6c6f776c69737420757064617465206f6e20646f6d61696e735c7570646174655f646f6d61696e5f616c6c6f776c69737404011c75706461746573fd030158446f6d61696e416c6c6f776c69737455706461746573000604c0416e20696e686572656e742063616c6c20746f2075706461746520616c6c6f776c69737420666f7220646f6d61696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee503084070616c6c65745f6d657373656e67657254496e6974696174654368616e6e656c506172616d7300000401546d61785f6f7574676f696e675f6d6573736167657310010c7533320000e9030c3073705f6d657373656e676572206d657373616765734843726f7373446f6d61696e4d6573736167650c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011470726f6f66ed0301a050726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001287765696768745f746167f10301404d6573736167655765696768745461670000ed030c3073705f6d657373656e676572206d657373616765731450726f6f660c3043426c6f636b4e756d62657201102843426c6f636b4861736801341c4d6d72486173680134010824436f6e73656e737573080164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e0001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600000018446f6d61696e0c0164636f6e73656e7375735f636861696e5f6d6d725f70726f6f66150301f4436f6e73656e737573436861696e4d6d724c65616650726f6f663c43426c6f636b4e756d6265722c2043426c6f636b486173682c204d6d72486173683e000130646f6d61696e5f70726f6f663103013053746f7261676550726f6f660001346d6573736167655f70726f6f663103013053746f7261676550726f6f6600010000f1030c3073705f6d657373656e676572206d65737361676573404d6573736167655765696768745461670001144c50726f746f636f6c4368616e6e656c4f70656e0000005050726f746f636f6c4368616e6e656c436c6f73650001003c456e64706f696e74526571756573740400f5030120456e64706f696e7400020040456e64706f696e74526573706f6e73650400f5030120456e64706f696e74000300104e6f6e6500040000f5030c3073705f6d657373656e67657220656e64706f696e7420456e64706f696e740001040849640400300128456e64706f696e74496400000000f903084070616c6c65745f6d657373656e67657250436861696e416c6c6f776c6973745570646174650001080c4164640400e8011c436861696e49640000001852656d6f76650400e8011c436861696e496400010000fd03082873705f646f6d61696e7358446f6d61696e416c6c6f776c697374557064617465730000080130616c6c6f775f636861696e730104014442547265655365743c436861696e49643e00013472656d6f76655f636861696e730104014442547265655365743c436861696e49643e000001040420425472656553657404045401e800040005040000000504000002e80009040c4870616c6c65745f7472616e73706f727465721870616c6c65741043616c6c040454000104207472616e736665720801306473745f6c6f636174696f6e0d0401204c6f636174696f6e000118616d6f756e7418013042616c616e63654f663c543e0000083901496e69746961746573207472616e73666572206f662066756e64732066726f6d206163636f756e74206f6e207372635f636861696e20746f206163636f756e74206f6e206473745f636861696e2e410146756e647320617265206275726e6564206f6e207372635f636861696e20666972737420616e6420617265206d696e746564206f6e206473745f636861696e207573696e67204d657373656e6765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d04084870616c6c65745f7472616e73706f72746572204c6f636174696f6e0000080120636861696e5f6964e8011c436861696e49640001286163636f756e745f6964cd0301384d756c74694163636f756e744964000011040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cbd02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504084073756273706163655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400190401746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f696404001d0401410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000019040c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200001d04081c73705f636f726510566f69640001000021040c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2504082873705f646f6d61696e733452756e74696d654f626a65637408184e756d6265720110104861736801340020013072756e74696d655f6e616d6521010118537472696e6700013072756e74696d655f74797065cc012c52756e74696d655479706500014072756e74696d655f757067726164657310010c753332000110686173683401104861736800012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e000128637265617465645f61741001184e756d626572000128757064617465645f61741001184e756d626572000029040c2873705f646f6d61696e731c73746f726167652852617747656e65736973000008010c746f702d04013847656e6573697353746f726167650001406368696c6472656e5f64656661756c744104019042547265654d61703c53746f726167654b65792c2047656e6573697353746f726167653e00002d04042042547265654d617008044b0131040456013504000400390400000031040c2873705f646f6d61696e731c73746f726167652853746f726167654b65790000040038011c5665633c75383e000035040c2873705f646f6d61696e731c73746f726167652c53746f72616765446174610000040038011c5665633c75383e000039040000023d04003d040000040831043504004104042042547265654d617008044b0131040456012d040004004504000000450400000249040049040000040831042d04004d040c3870616c6c65745f646f6d61696e734072756e74696d655f72656769737472795c5363686564756c656452756e74696d65557067726164650410486173680134000c012c7261775f67656e657369732904012852617747656e6573697300011c76657273696f6e5501013852756e74696d6556657273696f6e0001106861736834011048617368000051040c3870616c6c65745f646f6d61696e731c7374616b696e67385374616b696e6753756d6d61727908284f70657261746f72496401301c42616c616e636501180014014c63757272656e745f65706f63685f696e64657810012845706f6368496e64657800014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500014463757272656e745f6f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e0001386e6578745f6f70657261746f72736104015042547265655365743c4f70657261746f7249643e00015463757272656e745f65706f63685f726577617264735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e00005504042042547265654d617008044b013004560118000400590400000059040000025d04005d04000004083018006104042042547265655365740404540130000400210300000065040c3870616c6c65745f646f6d61696e731c7374616b696e67204f70657261746f720c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d62657201100030012c7369676e696e675f6b6579b10301444f70657261746f725075626c69634b657900014463757272656e745f646f6d61696e5f6964c80120446f6d61696e49640001386e6578745f646f6d61696e5f6964c80120446f6d61696e496400015c6d696e696d756d5f6e6f6d696e61746f725f7374616b6518011c42616c616e63650001386e6f6d696e6174696f6e5f746178b503011c50657263656e7400014c63757272656e745f746f74616c5f7374616b6518011c42616c616e636500015463757272656e745f65706f63685f7265776172647318011c42616c616e636500015063757272656e745f746f74616c5f7368617265731801145368617265000118737461747573690401844f70657261746f725374617475733c446f6d61696e426c6f636b4e756d6265723e0001446465706f736974735f696e5f65706f636818011c42616c616e63650001507769746864726177616c735f696e5f65706f63681801145368617265000164746f74616c5f73746f726167655f6665655f6465706f73697418011c42616c616e6365000069040c3870616c6c65745f646f6d61696e731c7374616b696e67384f70657261746f725374617475730444446f6d61696e426c6f636b4e756d6265720110011028526567697374657265640000003044657265676973746572656404006d0401ac4f70657261746f72446572656769737465726564496e666f3c446f6d61696e426c6f636b4e756d6265723e0001001c536c61736865640002003050656e64696e67536c617368000300006d040c3870616c6c65745f646f6d61696e731c7374616b696e67604f70657261746f72446572656769737465726564496e666f0444446f6d61696e426c6f636b4e756d626572011000080130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000071040c3870616c6c65745f646f6d61696e731c7374616b696e672c446f6d61696e45706f636800000800c80120446f6d61696e4964000010012845706f6368496e64657800007504000004083071040079040c3870616c6c65745f646f6d61696e731c7374616b696e672853686172655072696365000004007d04011c50657262696c6c00007d040c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000081040000040830000085040c3870616c6c65745f646f6d61696e731c7374616b696e671c4465706f7369740814536861726501181c42616c616e63650118000801146b6e6f776e890401704b6e6f776e4465706f7369743c53686172652c2042616c616e63653e00011c70656e64696e678d04017c4f7074696f6e3c50656e64696e674465706f7369743c42616c616e63653e3e000089040c3870616c6c65745f646f6d61696e731c7374616b696e67304b6e6f776e4465706f7369740814536861726501181c42616c616e6365011800080118736861726573180114536861726500014c73746f726167655f6665655f6465706f73697418011c42616c616e636500008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d6504009104000001000091040c3870616c6c65745f646f6d61696e731c7374616b696e673850656e64696e674465706f736974041c42616c616e63650118000c01586566666563746976655f646f6d61696e5f65706f63687104012c446f6d61696e45706f6368000118616d6f756e7418011c42616c616e636500014c73746f726167655f6665655f6465706f73697418011c42616c616e6365000095040c3870616c6c65745f646f6d61696e731c7374616b696e67285769746864726177616c0c1c42616c616e63650118145368617265011844446f6d61696e426c6f636b4e756d6265720110000c015c746f74616c5f7769746864726177616c5f616d6f756e7418011c42616c616e636500012c7769746864726177616c73990401e456656344657175653c5769746864726177616c496e42616c616e63653c446f6d61696e426c6f636b4e756d6265722c2042616c616e63653e3e0001507769746864726177616c5f696e5f736861726573a10401f44f7074696f6e3c5769746864726177616c496e5368617265733c446f6d61696e426c6f636b4e756d6265722c2053686172652c2042616c616e63653e3e000099040000029d04009d040c3870616c6c65745f646f6d61696e731c7374616b696e674c5769746864726177616c496e42616c616e63650844446f6d61696e426c6f636b4e756d62657201101c42616c616e6365011800100124646f6d61696e5f6964c80120446f6d61696e496400019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000140616d6f756e745f746f5f756e6c6f636b18011c42616c616e636500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a5040c3870616c6c65745f646f6d61696e731c7374616b696e67485769746864726177616c496e5368617265730c44446f6d61696e426c6f636b4e756d626572011014536861726501181c42616c616e6365011800100130646f6d61696e5f65706f63687104012c446f6d61696e45706f636800019c756e6c6f636b5f61745f636f6e6669726d65645f646f6d61696e5f626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000118736861726573180114536861726500014873746f726167655f6665655f726566756e6418011c42616c616e63650000a9040c3870616c6c65745f646f6d61696e733c646f6d61696e5f726567697374727930446f6d61696e4f626a65637410184e756d62657201102c52656365697074486173680134244163636f756e74496401001c42616c616e63650118001401406f776e65725f6163636f756e745f69640001244163636f756e744964000128637265617465645f61741001184e756d62657200015067656e657369735f726563656970745f6861736834012c5265636569707448617368000134646f6d61696e5f636f6e666967b9030180446f6d61696e436f6e6669673c4163636f756e7449642c2042616c616e63653e00014c646f6d61696e5f72756e74696d655f696e666fad040144446f6d61696e52756e74696d65496e666f0000ad040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727944446f6d61696e52756e74696d65496e666f0001080c45564d040120636861696e5f696430012845564d436861696e4964000000184175746f496400010000b10400000408c81000b5040c3870616c6c65745f646f6d61696e7328626c6f636b5f7472656534426c6f636b547265654e6f646514184e756d62657201101048617368013430446f6d61696e4e756d626572011028446f6d61696e4861736801341c42616c616e6365011800080144657865637574696f6e5f72656365697074dd02010501457865637574696f6e526563656970743c4e756d6265722c20486173682c20446f6d61696e4e756d6265722c20446f6d61696e486173682c2042616c616e63653e0001306f70657261746f725f6964732103013c5665633c4f70657261746f7249643e0000b9040000040cc8101000bd04000002c10400c104082873705f646f6d61696e733042756e646c654469676573740410486173680134000c012c6865616465725f686173683401104861736800013c65787472696e736963735f726f6f743401104861736800011073697a6510010c7533320000c504083870616c6c65745f646f6d61696e7368456c656374696f6e566572696669636174696f6e506172616d73041c42616c616e63650118000801246f70657261746f72735504017442547265654d61703c4f70657261746f7249642c2042616c616e63653e000148746f74616c5f646f6d61696e5f7374616b6518011c42616c616e63650000c904082873705f646f6d61696e7350436f6e6669726d6564446f6d61696e426c6f636b0844446f6d61696e426c6f636b4e756d626572011028446f6d61696e48617368013400140130626c6f636b5f6e756d626572100144446f6d61696e426c6f636b4e756d626572000128626c6f636b5f68617368340128446f6d61696e48617368000164706172656e745f626c6f636b5f726563656970745f68617368340128446f6d61696e4861736800012873746174655f726f6f74340128446f6d61696e4861736800013c65787472696e736963735f726f6f74340128446f6d61696e486173680000cd0400000408c83000d104042042547265654d617008044b0110045601d504000400d904000000d5040c3870616c6c65745f646f6d61696e734072756e74696d655f726567697374727964446f6d61696e52756e74696d6555706772616465456e74727904104861736801340008011c61745f686173683401104861736800013c7265666572656e63655f636f756e7410010c7533320000d904000002dd0400dd040000040810d50400e1040000021000e5040c3870616c6c65745f646f6d61696e731870616c6c657430547852616e6765537461746500000c012074785f72616e6765e90401105532353600013c696e74657276616c5f626c6f636b7330010c753634000140696e74657276616c5f62756e646c657330010c7536340000e904086073756273706163655f636f72655f7072696d697469766573105532353600000400ed040148707269766174655f753235363a3a553235360000ed040c6073756273706163655f636f72655f7072696d69746976657330707269766174655f75323536105532353600000400f001205b7536343b20345d0000f10408346672616d655f737570706f72742050616c6c65744964000004006501011c5b75383b20385d0000f5040c3870616c6c65745f646f6d61696e731870616c6c6574144572726f7204045400012028467261756450726f6f660400f904013c467261756450726f6f664572726f7200000450496e76616c69642066726175642070726f6f662e3c52756e74696d65526567697374727904000505015052756e74696d6552656769737472794572726f720001048052756e74696d65207265676973747279207370656369666963206572726f72731c5374616b696e670400090501305374616b696e674572726f720002045c5374616b696e672072656c61746564206572726f72732e305374616b696e6745706f63680400110501445374616b696e6745706f63684572726f72000304785374616b696e672065706f6368207370656369666963206572726f72732e38446f6d61696e526567697374727904001505014c446f6d61696e52656769737472794572726f720004047c446f6d61696e207265676973747279207370656369666963206572726f727324426c6f636b54726565040019050138426c6f636b547265654572726f7200050468426c6f636b2074726565207370656369666963206572726f72734442756e646c6553746f7261676546756e6404000d05015842756e646c6553746f7261676546756e644572726f720006048c42756e646c652073746f726167652066756e64207370656369666963206572726f7273705065726d697373696f6e6564416374696f6e4e6f74416c6c6f776564000704c45065726d697373696f6e656420616374696f6e206973206e6f7420616c6c6f776564206279207468652063616c6c65722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9040c3870616c6c65745f646f6d61696e731870616c6c65743c467261756450726f6f664572726f7200015448426164526563656970744e6f74466f756e64000000644368616c6c656e67696e6747656e65736973526563656970740001008844657363656e64616e74734f664672617564756c656e7445524e6f745072756e656400020068496e76616c6964426c6f636b46656573467261756450726f6f6600030068496e76616c69645472616e7366657273467261756450726f6f6600040080496e76616c6964446f6d61696e426c6f636b48617368467261756450726f6f6600050078496e76616c696445787472696e736963526f6f74467261756450726f6f6600060080496e76616c696453746174655472616e736974696f6e467261756450726f6f6600070054506172656e74526563656970744e6f74466f756e640008005c496e76616c696442756e646c65467261756450726f6f660009006042616456616c696442756e646c65467261756450726f6f66000a003c4d697373696e674f70657261746f72000b0050556e6578706563746564467261756450726f6f66000c006442616452656365697074416c72656164795265706f72746564000d002c4261644d6d7250726f6f66000e0048556e65787065637465644d6d7250726f6f66000f003c4d697373696e674d6d7250726f6f660010003c52756e74696d654e6f74466f756e6400110078446f6d61696e52756e74696d65436f646550726f6f664e6f74466f756e6400120080556e6578706563746564446f6d61696e52756e74696d65436f646550726f6f660013003053746f7261676550726f6f660400fd04018073746f726167655f70726f6f663a3a566572696669636174696f6e4572726f7200140000fd040c5873705f646f6d61696e735f66726175645f70726f6f663473746f726167655f70726f6f6644566572696669636174696f6e4572726f7200013c64496e76616c696442756e646c6553746f7261676550726f6f660000004c52756e74696d65436f64654e6f74466f756e6400010078556e6578706563746564446f6d61696e52756e74696d65557067726164650002006c426c6f636b52616e646f6d6e65737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720003005454696d657374616d7053746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000400745375636365737366756c42756e646c657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000500785472616e73616374696f6e4279746546656553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f7200060088446f6d61696e416c6c6f776c6973745570646174657353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720007005c426c6f636b44696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720008006c52756e74696d65526567697374727953746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f720009008044796e616d6963436f73744f6653746f7261676553746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000a004844696765737453746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000b0054426c6f636b4665737353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000c00545472616e736665727353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000d005445787472696e73696353746f7261676550726f6f6604000105017453746f7261676550726f6f66566572696669636174696f6e4572726f72000e000001050c2873705f646f6d61696e736c70726f6f665f70726f76696465725f616e645f766572696669657244566572696669636174696f6e4572726f7200011030496e76616c696450726f6f66000000304d697373696e6756616c7565000100384661696c6564546f4465636f646500020054556e757365644e6f646573496e54686550726f6f660003000005050c3870616c6c65745f646f6d61696e734072756e74696d655f7265676973747279144572726f72000128744661696c6564546f4578747261637452756e74696d6556657273696f6e0000003c496e76616c6964537065634e616d65000100685370656356657273696f6e4e65656473546f496e637265617365000200304d617852756e74696d654964000300504d697373696e6752756e74696d654f626a6563740004007852756e74696d6555706772616465416c72656164795363686564756c65640005005c4d61785363686564756c6564426c6f636b4e756d626572000600604661696c6564546f4465636f646552617747656e657369730007007c52756e74696d65436f64654e6f74466f756e64496e52617747656e6573697300080050496e76616c69644163636f756e744964547970650009000009050c3870616c6c65745f646f6d61696e731c7374616b696e67144572726f72000188444d6178696d756d4f70657261746f72496400000050446f6d61696e4e6f74496e697469616c697a65640001005450656e64696e674f70657261746f725377697463680002004c496e73756666696369656e7442616c616e636500030048496e73756666696369656e74536861726573000400485a65726f57697468647261775368617265730005003442616c616e6365467265657a65000600504d696e696d756d4f70657261746f725374616b650007003c556e6b6e6f776e4f70657261746f72000800544d696e696d756d4e6f6d696e61746f725374616b650009003c42616c616e63654f766572666c6f77000a004042616c616e6365556e646572666c6f77000b00404e6f744f70657261746f724f776e6572000c00544f70657261746f724e6f7452656769737465726564000d0040556e6b6e6f776e4e6f6d696e61746f72000e00504d697373696e674f70657261746f724f776e6572000f002c4d696e7442616c616e63650010004c426c6f636b4e756d6265724f766572666c6f770011002852656d6f76654c6f636b0012003445706f63684f766572666c6f77001300385368617265556e646572666c6f770014003453686172654f766572666c6f7700150078546f6f4d616e7950656e64696e675374616b696e674f7065726174696f6e001600484f70657261746f724e6f74416c6c6f77656400170064496e76616c69644f70657261746f725369676e696e674b65790018006c4475706c69636174654f70657261746f725369676e696e674b6579001900784d697373696e674f70657261746f7245706f636853686172655072696365001a00444d697373696e675769746864726177616c001b004045706f63684e6f74436f6d706c657465001c005c556e6c6f636b506572696f644e6f74436f6d706c657465001d005c4f70657261746f724e6f74446572656769737465726564001e004442756e646c6553746f7261676546756e6404000d05016862756e646c655f73746f726167655f66756e643a3a4572726f72001f0034556e636f6e6669726d6564455200200068496e76616c69645369676e696e674b65795369676e6174757265002100000d050c3870616c6c65745f646f6d61696e734c62756e646c655f73746f726167655f66756e64144572726f720001185c42756e646c6553746f726167654665655061796d656e740000004042616c616e6365556e646572666c6f770001002c4d696e7442616c616e6365000200344661696c546f4465706f7369740003003c5769746864726177416e64486f6c640004003c42616c616e63655472616e736665720005000011050c3870616c6c65745f646f6d61696e73347374616b696e675f65706f6368144572726f720001086846696e616c697a65446f6d61696e45706f63685374616b696e6704000905013c5472616e736974696f6e4572726f72000000544f70657261746f725265776172645374616b696e6704000905013c5472616e736974696f6e4572726f720001000015050c3870616c6c65745f646f6d61696e733c646f6d61696e5f7265676973747279144572726f7200015058496e76616c696442756e646c6573506572426c6f636b000000684578636565644d6178446f6d61696e426c6f636b576569676874000100604578636565644d6178446f6d61696e426c6f636b53697a650002002c4d6178446f6d61696e4964000300344d617845564d436861696e496400040058496e76616c6964536c6f7450726f626162696c6974790005003c52756e74696d654e6f74466f756e6400060040496e73756666696369656e7446756e6400070044446f6d61696e4e616d65546f6f4c6f6e670008003442616c616e6365467265657a65000900804661696c6564546f47656e657261746547656e657369735374617465526f6f74000a0038446f6d61696e4e6f74466f756e64000b00384e6f74446f6d61696e4f776e6572000c0058496e697469616c42616c616e63654f766572666c6f77000d00405472616e7366657273547261636b6572000e00604d696e496e697469616c4163636f756e7442616c616e6365000f00604d6178496e697469616c446f6d61696e4163636f756e7473001000604475706c6963617465496e697469616c4163636f756e7473001100684661696c6564546f47656e657261746552617747656e6573697304000505017863726174653a3a72756e74696d655f72656769737472793a3a4572726f720012007842756e646c654c696d697443616c63756c6174696f6e4f766572666c6f770013000019050c3870616c6c65745f646f6d61696e7328626c6f636b5f74726565144572726f7200015458496e76616c696445787472696e73696373526f6f747300000064556e6b6e6f776e506172656e74426c6f636b52656365697074000100704275696c744f6e556e6b6e6f776e436f6e73656e737573426c6f636b0002003c496e46757475726552656365697074000300345072756e656452656365697074000400305374616c6552656365697074000500404e65774272616e6368526563656970740006004442616447656e657369735265636569707400070054556e657870656374656452656365697074547970650008004c4d617848656164446f6d61696e4e756d626572000900484d697373696e67446f6d61696e426c6f636b000a0040496e76616c69645472616365526f6f74000b0054496e76616c6964457865637574696f6e5472616365000c0074556e617661696c61626c65436f6e73656e737573426c6f636b48617368000d0040496e76616c69645374617465526f6f74000e003c42616c616e63654f766572666c6f77000f005c446f6d61696e5472616e7366657273547261636b696e6700100058496e76616c6964446f6d61696e5472616e7366657273001100344f76657277726974696e6745520012003c52756e74696d654e6f74466f756e64001300444c617374426c6f636b4e6f74466f756e64001400001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dc045300000400dd0301185665633c543e000021050c306f726d6c5f76657374696e67186d6f64756c65144572726f72040454000118445a65726f56657374696e67506572696f640000045856657374696e6720706572696f64206973207a65726f585a65726f56657374696e67506572696f64436f756e740001045c4e756d626572206f66207665737473206973207a65726f64496e73756666696369656e7442616c616e6365546f4c6f636b00020498496e73756666696369656e7420616d6f756e74206f662062616c616e636520746f206c6f636b5c546f6f4d616e7956657374696e675363686564756c6573000304b054686973206163636f756e74206861766520746f6f206d616e792076657374696e67207363686564756c657324416d6f756e744c6f770004049454686520766573746564207472616e7366657220616d6f756e7420697320746f6f206c6f776c4d617856657374696e675363686564756c65734578636565646564000504e44661696c6564206265636175736520746865206d6178696d756d2076657374696e67207363686564756c657320776173206578636565646564048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2505084070616c6c65745f6d657373656e6765721c4368616e6e656c081c42616c616e63650118244163636f756e7449640100002001286368616e6e656c5f6964ec01244368616e6e656c49640001147374617465290501304368616e6e656c53746174650001406e6578745f696e626f785f6e6f6e6365ec01144e6f6e63650001446e6578745f6f7574626f785f6e6f6e6365ec01144e6f6e63650001986c61746573745f726573706f6e73655f72656365697665645f6d6573736167655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e0001546d61785f6f7574676f696e675f6d6573736167657310010c75333200010c666565310501444665654d6f64656c3c42616c616e63653e00012c6d617962655f6f776e6572050101444f7074696f6e3c4163636f756e7449643e00002905084070616c6c65745f6d657373656e676572304368616e6e656c537461746500010c24496e69746961746564000000104f70656e00010018436c6f736564000200002d0504184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec000001000031050c3073705f6d657373656e676572206d65737361676573204665654d6f64656c041c42616c616e636501180004012472656c61795f66656518011c42616c616e6365000035050c3073705f6d657373656e676572206d657373616765731c4d657373616765041c42616c616e63650118001801307372635f636861696e5f6964e8011c436861696e49640001306473745f636861696e5f6964e8011c436861696e49640001286368616e6e656c5f6964ec01244368616e6e656c49640001146e6f6e6365ec01144e6f6e636500011c7061796c6f61643905016456657273696f6e65645061796c6f61643c42616c616e63653e0001946c6173745f64656c6976657265645f6d6573736167655f726573706f6e73655f6e6f6e63652d0501344f7074696f6e3c4e6f6e63653e000039050c3073705f6d657373656e676572206d657373616765734056657273696f6e65645061796c6f6164041c42616c616e63650118010408563004003d0501405061796c6f61643c42616c616e63653e000000003d050c3073705f6d657373656e676572206d657373616765731c5061796c6f6164041c42616c616e6365011801082050726f746f636f6c0400410501290152657175657374526573706f6e73653c50726f746f636f6c4d657373616765526571756573743c42616c616e63653e2c2050726f746f636f6c4d657373616765526573706f6e73650a3e00000020456e64706f696e7404004d0501c852657175657374526573706f6e73653c456e64706f696e74526571756573742c20456e64706f696e74526573706f6e73653e0001000041050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401450520526573706f6e736501bc01081c5265717565737404004505011c5265717565737400000020526573706f6e73650400bc0120526573706f6e73650001000045050c3073705f6d657373656e676572206d657373616765735850726f746f636f6c4d65737361676552657175657374041c42616c616e6365011801082c4368616e6e656c4f70656e0400490501684368616e6e656c4f70656e506172616d733c42616c616e63653e000000304368616e6e656c436c6f73650001000049050c3073705f6d657373656e676572206d65737361676573444368616e6e656c4f70656e506172616d73041c42616c616e63650118000801546d61785f6f7574676f696e675f6d6573736167657310010c7533320001246665655f6d6f64656c310501444665654d6f64656c3c42616c616e63653e00004d050c3073705f6d657373656e676572206d657373616765733c52657175657374526573706f6e7365081c5265717565737401510520526573706f6e736501550501081c5265717565737404005105011c5265717565737400000020526573706f6e7365040055050120526573706f6e73650001000051050c3073705f6d657373656e67657220656e64706f696e743c456e64706f696e745265717565737400000c01307372635f656e64706f696e74f5030120456e64706f696e740001306473745f656e64706f696e74f5030120456e64706f696e7400011c7061796c6f616438013c456e64706f696e745061796c6f6164000055050418526573756c740804540138044501680108084f6b040038000000000c4572720400680000010000590500000408e8fc005d050000040ce8ecec0061050c4070616c6c65745f6d657373656e676572206d65737361676573444d6573736167655765696768745461677300000801186f7574626f78650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00013c696e626f785f726573706f6e736573650501c042547265654d61703c28436861696e49642c204d6573736167654964292c204d6573736167655765696768745461673e00006505042042547265654d617008044b015905045601f103000400690500000069050000026d05006d05000004085905f1030071050c4070616c6c65745f6d657373656e6765721870616c6c6574144572726f7204045400015030496e76616c6964436861696e000004d0456d697473207768656e2074686520636861696e206973206e65697468657220636f6e73656e737573206e6f7420636861696e2e384d697373696e674368616e6e656c000104d8456d697473207768656e207468657265206973206e6f206368616e6e656c20666f72206120676976656e204368616e6e656c2049442e4c496e76616c69644368616e6e656c5374617465000204d0456d697473207768656e207468652073616964206368616e6e656c206973206e6f7420696e20616e206f70656e2073746174652e344e6f4f70656e4368616e6e656c000304c4456d697473207768656e20746865726520617265206e6f206f70656e206368616e6e656c7320666f72206120636861696e404e6f4d65737361676548616e646c65720004040101456d697473207768656e20746865726520617265206e6f74206d6573736167652068616e646c6572207769746820676976656e20656e64706f696e742049442e284f7574626f7846756c6c000504b0456d697473207768656e20746865206f7574626f782069732066756c6c20666f722061206368616e6e656c2e54496e76616c69644d6573736167655061796c6f6164000604a8456d697473207768656e20746865206d657373616765207061796c6f616420697320696e76616c69642e64496e76616c69644d65737361676544657374696e6174696f6e000704c0456d697473207768656e20746865206d6573736167652064657374696e6174696f6e206973206e6f742076616c69642e4c4d657373616765566572696669636174696f6e040001050144566572696669636174696f6e4572726f72000804ac456d697473207768656e20746865206d65737361676520766572696669636174696f6e206661696c65642e384d697373696e674d657373616765000904f4456d697473207768656e207468657265206973206e6f206d65737361676520617661696c61626c6520666f722074686520676976656e206e6f6e63652e445765696768745461674e6f744d61746368000a083d01456d697473207768656e207468657265206973206d69736d61746368206265747765656e20746865206d6573736167652773207765696768742074616720616e6420746865206d65737361676527735861637475616c2070726f63657373696e6720706174683c42616c616e63654f766572666c6f77000b04a4456d697473207768656e207468652074686572652069732062616c616e6365206f766572666c6f772e4c496e76616c6964416c6c6f776564436861696e000c0458496e76616c696420616c6c6f77656420636861696e2e4c4f7065726174696f6e4e6f74416c6c6f776564000d04584f7065726174696f6e206e6f7420616c6c6f7765642e384e6f74446f6d61696e4f776e6572000e04784163636f756e74206973206e6f74206120446f6d61696e206f776e65722e3c436861696e4e6f74416c6c6f776564000f0484436861696e206e6f7420616c6c6f77656420746f206f70656e206368616e6e656c4c496e73756666696369656e7442616c616e6365001004984e6f7420656e6f7567682062616c616e636520746f20646f20746865206f7065726174696f6e2c42616c616e6365486f6c64001104584661696c656420746f20686f6c642062616c616e6365304368616e6e656c4f776e65720012044c4e6f742061206368616e6e656c206f776e65723442616c616e6365556e6c6f636b001304704661696c656420746f20756e6c6f636b207468652062616c616e636504646070616c6c65742d6d657373656e67657260206572726f72737505084870616c6c65745f7472616e73706f72746572205472616e73666572041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011873656e6465720d0401204c6f636174696f6e00012072656365697665720d0401204c6f636174696f6e0000790500000408e8e8007d050c4870616c6c65745f7472616e73706f727465721870616c6c6574144572726f7204045400012c284c6f7742616c616e6365000004e8456d697473207768656e20746865206163636f756e7420686173206c6f772062616c616e636520746f206d616b652061207472616e736665722e38496e76616c69645061796c6f6164000104884661696c656420746f206465636f6465207472616e73666572207061796c6f61642e584d697373696e675472616e7366657252657175657374000204e8456d697473207768656e20746865207265717565737420666f72206120726573706f6e7365207265636569766564206973206d697373696e672e58496e76616c69645472616e7366657252657175657374000304dc456d697473207768656e20746865207265717565737420646f65736e2774206d6174636820746865206578706563746564206f6e652e2e44556e65787065637465644d657373616765000404ec456d697473207768656e2074686520696e636f6d696e67206d657373616765206973206e6f7420626f756e6420746f207468697320636861696e2e40496e76616c69644163636f756e744964000504a8456d697473207768656e20746865206163636f756e74206964207479706520697320696e76616c69642e484c6f7742616c616e63654f6e446f6d61696e0006042101456d697473207768656e2066726f6d5f636861696e20646f206e6f74206861766520656e6f7567682066756e647320746f2066696e616c697a6520746865207472616e736665722e444e6f6e436f6e73656e737573436861696e0007041101456d697473207768656e20746865207472616e7366657220747261636b696e67207761732063616c6c65642066726f6d206e6f6e2d636f6e73656e73757320636861696e3c42616c616e63654f766572666c6f770008046c456d697473207768656e2062616c616e6365206f766572666c6f774042616c616e6365556e646572666c6f7700090470456d697473207768656e2062616c616e636520756e646572666c6f777c446f6d61696e42616c616e6365416c7265616479496e697469616c697a6564000a04c0456d697473207768656e20646f6d61696e2062616c616e636520697320616c726561647920696e697469616c697a656404944572726f727320656d69747465642062792070616c6c65742d7472616e73706f727465722e81050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8505102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c01bd02245369676e6174757265018905144578747261019105000400380000008905082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9010148656432353531393a3a5369676e61747572650000001c537232353531390400b9010148737232353531393a3a5369676e617475726500010014456364736104008d05014065636473613a3a5369676e6174757265000200008d05000003410000000800910500000428950599059d05a105a505ad05b105b505b905bd0500950510306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990510306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0510306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10510306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50510306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a905010c4572610000a905102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0510306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000b10510306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b505086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e0013042616c616e63654f663c543e0000b9050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e7348436865636b53746f7261676541636365737300000000bd050c4073756273706163655f72756e74696d65447369676e65645f657874656e73696f6e733844697361626c6550616c6c65747300000000c105084073756273706163655f72756e74696d651c52756e74696d6500000000441853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023411010400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000190104000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000901040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500002501040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01290101581830426c6f636b576569676874733901f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849013000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e741010fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451014000127a000000000080f0fa02000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e5501c50320737562737061636520737562737061636500000000050000000000000044df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000505a9fa38782c6e301000000e3ff280521c61d6a01000000313200fff235dc4d040000000d8cd5426d5c260901000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80400000084e41fdde0772980030000003fdc5ad7fc3849be01000000dd5b344671f65a6a0200000091d5df18b0d2cf5802000000fbc577b9d747efd6010000000000000000000484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978690108ce0814a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e016d01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0171010004344d696e696d756d506572696f643020f401000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001205375627370616365012053756273706163655c2c47656e65736973536c6f74010075012000000000000000000475012054686520736c6f742061742077686963682074686520666972737420626c6f636b2077617320637265617465642e2054686973206973203020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100750120000000000000000004542043757272656e7420736c6f74206e756d6265722e28426c6f636b536c6f747301007901040004a820426f756e646564206d617070696e672066726f6d20626c6f636b206e756d62657220746f20736c6f7444506f74536c6f74497465726174696f6e7300008901040004c0204e756d626572206f6620697465726174696f6e7320666f722070726f6f66206f662074696d652070657220736c6f7438536f6c7574696f6e52616e67657301008d0148a5e2ecc367d8150000a5e2ecc367d8150000049420536f6c7574696f6e2072616e676573207573656420666f72206368616c6c656e6765732e6453686f756c6441646a757374536f6c7574696f6e52616e676501002004000419012053746f7261676520746f20636865636b2069662074686520736f6c7574696f6e2072616e676520697320746f2062652061646a757374656420666f72206e65787420657261644e657874536f6c7574696f6e52616e67654f7665727269646500009501040004ac204f7665727269646520736f6c7574696f6e2072616e676520647572696e67206e65787420757064617465304572615374617274536c6f74000075010400048c20536c6f742061742077686963682063757272656e742065726120737461727465642e24426c6f636b4c6973740001040598c0040004d0204120736574206f6620626c6f636b6564206661726d657273206b65796564206279207468656972207075626c6963206b65792e445365676d656e74436f6d6d69746d656e740001040584880400045501204d617070696e672066726f6d207365676d656e7420696e64657820746f20636f72726573706f6e64696e67207365676d656e7420636f6d6d69746d656e74206f6620636f6e7461696e6564207265636f7264732e6c436f756e746572466f725365676d656e74436f6d6d69746d656e74010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706044696450726f636573735365676d656e74486561646572730100200400106501205768657468657220746865207365676d656e74206865616465727320696e686572656e7420686173206265656e2070726f63657373656420696e207468697320626c6f636b202874656d706f726172792076616c7565292e004d0120546869732076616c7565206973207570646174656420746f20607472756560207768656e2070726f63657373696e67206073746f72655f7365676d656e745f68656164657273602062792061206e6f64652e4501204974206973207468656e20636c65617265642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e68506172656e74566f7465566572696669636174696f6e44617461000099010400045d012053746f72616765206f662070726576696f757320766f746520766572696669636174696f6e20646174612c2075706461746564206f6e206561636820626c6f636b20647572696e672066696e616c697a6174696f6e2e54506172656e74426c6f636b417574686f72496e666f00009d010400048420506172656e7420626c6f636b20617574686f7220696e666f726d6174696f6e2e34456e61626c6552657761726473000010040004b420456e61626c6520726577617264732073696e63652073706563696669656420626c6f636b206e756d6265722e7c456e61626c655265776172647342656c6f77536f6c7574696f6e52616e6765000030040004f020456e61626c652072657761726473207768656e20736f6c7574696f6e2072616e67652069732062656c6f772074686973207468726573686f6c642e5843757272656e74426c6f636b417574686f72496e666f0000a9010400046420426c6f636b20617574686f7220696e666f726d6174696f6e44506172656e74426c6f636b566f746572730100ad01040004390120566f7465727320696e2074686520706172656e7420626c6f636b20287365742061742074686520656e64206f662074686520626c6f636b20776974682063757272656e742076616c756573292e4843757272656e74426c6f636b566f746572730000ad010400049420566f7465727320696e207468652063757272656e7420626c6f636b20746875732066617228506f74456e74726f70790100c501040008710120456e74726f70792074686174206e6565647320746f20626520696e6a656374656420696e746f2070726f6f66206f662074696d6520636861696e20617420737065636966696320736c6f74206173736f63696174656420776974686c20626c6f636b206e756d6265722069742063616d652066726f6d2e3c426c6f636b52616e646f6d6e6573730000d9010400087901205468652063757272656e7420626c6f636b2072616e646f6d6e6573732c207570646174656420617420626c6f636b20696e697469616c697a6174696f6e2e205768656e207468652070726f6f66206f662074696d652066656174757265b820697320656e61626c656420697420646572697665642066726f6d20506f54206f746865727769736520506f522e58416c6c6f77417574686f72696e674279416e796f6e65010020040004b820416c6c6f7720626c6f636b20617574686f72696e6720627920616e796f6e65206f72206a75737420726f6f742e44526f6f74506c6f745075626c69634b657900009804000c5820526f6f7420706c6f74207075626c6963206b65792e004d0120536574206a757374206f6e636520746f206d616b652073757265206e6f206f6e6520656c73652063616e20617574686f7220626c6f636b7320756e74696c20616c6c6f77656420666f7220616e796f6e652e01dd01017c384c426c6f636b417574686f72696e6744656c61797501200400000000000000104d01204e756d626572206f6620736c6f7473206265747765656e20736c6f74206172726976616c20616e64207768656e20636f72726573706f6e64696e6720626c6f636b2063616e2062652070726f64756365642e005d012050726163746963616c6c792074686973206d65616e73206675747572652070726f6f66206f662074696d652070726f6f66206e6565647320746f2062652072657665616c65642074686973206d616e7920736c6f74734901206168656164206265666f726520626c6f636b2063616e20626520617574686f726564206576656e2074686f75676820736f6c7574696f6e20697320617661696c61626c65206265666f726520746861742e6c506f74456e74726f7079496e6a656374696f6e496e74657276616c10103200000004510120496e74657276616c2c20696e20626c6f636b732c206265747765656e20626c6f636b636861696e20656e74726f707920696e6a656374696f6e20696e746f2070726f6f66206f662074696d6520636861696e2e80506f74456e74726f7079496e6a656374696f6e4c6f6f6b6261636b446570746808040204510120496e74657276616c2c20696e20656e74726f707920696e6a656374696f6e20696e74657276616c732c20776865726520746f2074616b6520656e74726f707920666f7220696e6a656374696f6e2066726f6d2e60506f74456e74726f7079496e6a656374696f6e44656c61797501200f000000000000000409012044656c617920616674657220626c6f636b2c20696e20736c6f74732c207768656e20656e74726f707920696e6a656374696f6e2074616b6573206566666563742e2c4572614475726174696f6e1010e00700000ce82054686520616d6f756e74206f662074696d652c20696e20626c6f636b732c20746861742065616368206572612073686f756c64206c6173742e1101204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e67652074686520657261206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e50496e697469616c536f6c7574696f6e52616e67653020a5e2ecc367d8150004190120496e697469616c20736f6c7574696f6e2072616e6765207573656420666f72206368616c6c656e67657320647572696e67207468652076657279206669727374206572612e3c536c6f7450726f626162696c6974791d02400100000000000000060000000000000014490120486f77206f6674656e20696e20736c6f747320736c6f747320286f6e20617665726167652c206e6f7420636f756e74696e6720636f6c6c6973696f6e73292077696c6c2068617665206120626c6f636b2e000d0120457870726573736564206173206120726174696f6e616c20776865726520746865206669727374206d656d626572206f6620746865207475706c65206973207468650501206e756d657261746f7220616e6420746865207365636f6e64206973207468652064656e6f6d696e61746f722e2054686520726174696f6e616c2073686f756c648c20726570726573656e7420612076616c7565206265747765656e203020616e6420312e48436f6e6669726d6174696f6e44657074684b10106400000008650120446570746820604b60206166746572207768696368206120626c6f636b20656e7465727320746865207265636f7264656420686973746f727920286120676c6f62616c20636f6e7374616e742c206173206f70706f736564f420746f2074686520636c69656e742d646570656e64656e74207472616e73616374696f6e20636f6e6669726d6174696f6e20646570746820606b60292e38526563656e745365676d656e7473f901200500000000000000042501204e756d626572206f66206c6174657374206172636869766564207365676d656e747320746861742061726520636f6e736964657265642022726563656e7420686973746f7279222e54526563656e74486973746f72794672616374696f6e21024001000000000000000a00000000000000044501204672616374696f6e206f66207069656365732066726f6d207468652022726563656e7420686973746f727922202860726563656e745f7365676d656e7473602920696e206561636820736563746f722e444d696e536563746f724c69666574696d65f901200400000000000000041101204d696e696d756d206c69666574696d65206f66206120706c6f7474656420736563746f722c206d6561737572656420696e206172636869766564207365676d656e742e544578706563746564566f746573506572426c6f636b1010090000000c90204e756d626572206f6620766f7465732065787065637465642070657220626c6f636b2e00d0205468697320696d706163747320736f6c7574696f6e2072616e676520666f7220766f74657320696e20636f6e73656e7375732e444d6178506965636573496e536563746f72690108e80304e020486f77206d616e7920706965636573206f6e6520736563746f7220697320737570706f73656420746f20636f6e7461696e20286d61782938426c6f636b536c6f74436f756e74101006000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b20736c6f74206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e01250202404f6666656e636573537562737061636501404f6666656e63657353756273706163650c1c5265706f72747300010405342902040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805052d020d010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e64657801010405a038040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e00019c0000031c52657761726473011c526577617264731448417667426c6f636b737061636555736167650100101000000000045901205574696c697a6174696f6e206f6620626c6f636b73706163652028696e2062797465732920627920746865206e6f726d616c2065787472696e73696373207573656420746f2061646a7573742069737375616e63653852657761726473456e61626c656401002004000470205768657468657220726577617264732061726520656e61626c65644452656d61696e696e6749737375616e6365010018400000000000000000000000000000000004c820546f6b656e73206c65667420746f20697373756520746f206661726d65727320617420616e7920676976656e2074696d655450726f706f73657253756273696479506f696e7473010031020400048820426c6f636b2070726f706f736572207375627369647920706172616d657465727348566f74657253756273696479506f696e7473010031020400046420566f746572207375627369647920706172616d6574657273013d0201a4106c417667426c6f636b737061636555736167654e756d426c6f636b73101064000000040101204e756d626572206f6620626c6f636b73206f76657220776869636820746f20636f6d70757465206176657261676520626c6f636b7370616365207573616765485472616e73616374696f6e427974654665651840e5585cbd000000000000000000000000047c20436f7374206f66206f6e652062797465206f6620626c6f636b73706163653c4d6178526577617264506f696e74731010140000000470204d6178206e756d626572206f662072657761726420706f696e74734850726f706f7365725461784f6e566f746573150120010000000a000000049020546178206f66207468652070726f706f736572206f6e20766f7465207265776172647300042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004102040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200510204000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402005d020400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402007d020400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01890201a810484578697374656e7469616c4465706f7369741840f401000000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010000000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a102053c5472616e73616374696f6e46656573013c5472616e73616374696f6e4665657310485472616e73616374696f6e427974654665650100a50280ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff243501205468652076616c7565206f6620607472616e73616374696f6e5f627974655f6665656020666f7220626f7468207468652063757272656e7420616e6420746865206e65787420626c6f636b2e0061012054686520606e657874602076616c7565206f6620607472616e73616374696f6e5f627974655f66656560206973207570646174656420617420626c6f636b2066696e616c697a6174696f6e20616e64207573656420746f5d012076616c69646174652065787472696e73696320746f20626520696e636c7564656420696e20746865206e65787420626c6f636b2c207468652076616c7565206973206d6f766520746f206063757272656e7460206174550120626c6f636b20696e697469616c697a6174696f6e20616e64207573656420746f20657865637574652065787472696e73696320696e207468652063757272656e7420626c6f636b2e20546f676574686572206974390120656e7375726520776520757365207468652073616d652076616c756520666f7220626f74682076616c69646174696e6720616e6420657865637574696e67207468652065787472696e7369632e006101204e4f54453a20626f746820746865206063757272656e746020616e6420606e657874602076616c75652069732073657420746f207468652064656661756c74206042616c616e63653a3a6d61785f76616c75656020696e5901207468652067656e6573697320626c6f636b207768696368206d65616e732074686572652077696c6c206265206e6f207369676e65642065787472696e73696320696e636c7564656420696e20626c6f636b2023312e584973447572696e67426c6f636b457865637574696f6e01002004000881012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207573656420746f2064657465726d696e652069662074686520607472616e73616374696f6e5f627974655f66656560d0206973207573656420746f2076616c69646174652065787472696e736963206f7220657865637574652065787472696e7369632e2c426c6f636b417574686f720000000400086d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20617574686f722c20736f207765a82063616e206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e48436f6c6c6563746564426c6f636b466565730000a90204000875012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e2920776869636820636f6e7461696e732063757272656e7420626c6f636b20666565732c20736f2077652063616e98206973737565206665657320647572696e6720626c6f636b2066696e616c697a6174696f6e2e0001b010504d696e5265706c69636174696f6e466163746f726901083200084901204d696e696d756d2064657369726564206e756d626572206f66207265706c69636173206f662074686520626c6f636b636861696e20746f2062652073746f72656420627920746865206e6574776f726b2c5820696d70616374732073746f7261676520666565732e30437265646974537570706c7918401a7a0ad02f22b24bc25c08000000000004a820486f77206d616e79206372656469747320746865726520697320696e2063697263756c6174696f6e2e44546f74616c5370616365506c65646765641840003ba00c9a463502000000000000000004a020486f77206d756368207370616365207468657265206973206f6e20746865206e6574776f726b2e54426c6f636b636861696e486973746f727953697a6518400040806015000000000000000000000008490120486f77206269672069732074686520686973746f7279206f662074686520626c6f636b636861696e20696e20617263686976656420737461746520287468757320696e636c7564657320657261737572657820636f64696e672c20627574206e6f74207265706c69636174696f6e292e0006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100ad0240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100b1020400000001b404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00071c5574696c6974790001b50201b8044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e012104081c446f6d61696e73011c446f6d61696e7390445375636365737366756c42756e646c657301010406c80d01040004c42042756e646c6573207375626d6974746564207375636365737366756c6c7920696e2063757272656e7420626c6f636b2e344e65787452756e74696d654964010010100000000004702053746f72657320746865206e6578742072756e74696d652069642e384e65787445564d436861696e496401003020107a07000000000004782053746f72657320746865206e6578742065766d20636861696e2069642e3c52756e74696d65526567697374727900010406102504040000605363686564756c656452756e74696d655570677261646573000108060615014d04040000384e6578744f70657261746f724964010030200000000000000000003c4f70657261746f7249644f776e6572000104063000040000484f70657261746f725369676e696e674b657900010406b10330040004c420496e6465786573206f70657261746f72207369676e696e67206b657920616761696e7374204f70657261746f7249642e50446f6d61696e5374616b696e6753756d6d61727900010406c85104040000244f70657261746f727300010406306504040004e8204c697374206f6620616c6c2072656769737465726564206f70657261746f727320616e6420746865697220636f6e66696775726174696f6e2e4c4f70657261746f7248696768657374536c6f7401010406303020000000000000000004e020546865206869676865737420736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f72484f70657261746f7242756e646c65536c6f740101040630610404000871012054686520736574206f6620736c6f74206f66207468652062756e646c65207375626d697474656420627920616e206f70657261746f7220696e207468652063757272656e7420626c6f636b2c20636c65617265642061742074686568206e65787420626c6f636b20696e697469616c697a6174696f6e5c4f70657261746f7245706f636853686172655072696365000108060675047904040004f820536861726520707269636520666f7220746865206f70657261746f7220706f6f6c2061742074686520656e64206f6620446f6d61696e2065706f63682e204465706f73697473000108060681048504040004a4204c697374206f6620616c6c206465706f7369747320666f7220676976656e204f70657261746f722e2c5769746864726177616c73000108060681049504040004b8204c697374206f6620616c6c207769746864726177616c7320666f72206120676976656e206f70657261746f722e384e6f6d696e61746f72436f756e74010104063010100000000018c420547261636b7320746865206e6f6d696e61746f7220636f756e7420756e64657220676976656e206f70657261746f722e650120546869732073746f72616765206973206e65636573736172792073696e636520436f756e74656453746f726167654e4d617020646f6573206e6f7420737570706f727420707265666978206b657920636f756e742c20736fdc2063616e6e6f742075736520746861742073746f72616765207479706520666f7220604e6f6d696e61746f7273602073746f726167652e7d01204e6f74653a2054686520636f756e7420697320696e6372656d656e74656420666f72206e6577206e6f6d696e61746f727320616e642064656372656d656e746564207768656e20746865206e6f6d696e61746f72207769746864726177733c20616c6c20746865207374616b652e15012053696e6365204f70657261746f72207468656d73656c76657320617265206669727374206e6f6d696e61746f722c207468657920617265206e6f7420636f756e7465642e3850656e64696e67536c617368657300010406c8610404000c5d012041206c697374206f70657261746f72732077686f207765726520736c617368656420647572696e67207468652063757272656e742065706f6368206173736f63696174656420776974682074686520646f6d61696e2e7501205768656e207468652065706f636820666f72206120676976656e20646f6d61696e20697320636f6d706c6574652c206f70657261746f7220746f74616c207374616b65206973206d6f76656420746f20747265617375727920616e6438207468656e2064656c657465642e7050656e64696e675374616b696e674f7065726174696f6e436f756e7401010406c8101000000000085101205468652070656e64696e67207374616b696e67206f7065726174696f6e20636f756e74206f66207468652063757272656e742065706f63682c2069742073686f756c64206e6f74206c6172676572207468616e390120604d617850656e64696e675374616b696e674f7065726174696f6e6020616e642077696c6c20626520726573657474656420746f20302075706f6e2065706f6368207472616e736974696f6e2e304e657874446f6d61696e49640100c81000000000046c2053746f72657320746865206e65787420646f6d61696e2069642e38446f6d61696e526567697374727900010406c8a904040004502054686520646f6d61696e20726567697374727924426c6f636b547265650001080606b104340400084d012054686520646f6d61696e20626c6f636b20747265652c206d6170202860646f6d61696e5f6964602c2060646f6d61696e5f626c6f636b5f6e756d626572602920746f207468652068617368206f662045522cf82077686963682063616e2062652075736564206765742074686520626c6f636b2074726565206e6f646520696e2060426c6f636b547265654e6f6465736038426c6f636b547265654e6f6465730001040634b5040400044101204d617070696e67206f6620626c6f636b2074726565206e6f6465206861736820746f20746865206e6f64652c2065616368206e6f646520726570726573656e74206120646f6d61696e20626c6f636b4448656164526563656970744e756d62657201010406c8101000000000049c2054686520686561642072656365697074206e756d626572206f66206561636820646f6d61696e4c4865616452656365697074457874656e64656401010406c82004000c190120576865746865722074686520686561642072656365697074206861766520657874656e64656420696e207468652063757272656e7420636f6e73656e73757320626c6f636b00d02054656d706f726172792073746f72616765206f6e6c7920657869737420647572696e6720626c6f636b20657865637574696f6e48436f6e73656e737573426c6f636b486173680001080606b1043404001cb02054686520636f6e73656e73757320626c6f636b2068617368207573656420746f207665726966792045522cc4206f6e6c792073746f72652074686520636f6e73656e73757320626c6f636b206861736820666f72206120646f6d61696e6d01206966207468617420636f6e73656e73757320626c6f636b20636f6e7461696e732062756e646c65206f662074686520646f6d61696e2c2074686520686173682077696c6c206265207072756e6564207768656e20746865204552b4207468617420706f696e7420746f2074686520636f6e73656e73757320626c6f636b206973207072756e65642e00910120544f444f3a20746869732073746f7261676520697320756e626f756e64656420696e20736f6d652063617365732c207365652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f31363733ad0120666f72206d6f72652064657461696c732c20746869732077696c6c206265206669786564206f6e63652068747470733a2f2f6769746875622e636f6d2f73756273706163652f73756273706163652f6973737565732f3137333120697320696d706c656d656e7465642e38457865637574696f6e496e626f7801010c060606b904bd040400147501204120736574206f66206042756e646c65446967657374602066726f6d20616c6c2062756e646c65732074686174207375636365737366756c6c79207375626d697474656420746f2074686520636f6e73656e73757320626c6f636b2c69012074686573652062756e646c65732077696c6c206265207573656420746f20636f6e7374727563742074686520646f6d61696e20626c6f636b20616e642060457865637574696f6e496e626f7860206973207573656420746f3a00690120312e20456e737572652073756273657175656e7420455273206f66207468617420646f6d61696e20626c6f636b20696e636c75646520616c6c207072652d76616c6964617465642065787472696e7369632062756e646c6573a90120322e20496e646578207468652060496e626f78656442756e646c65417574686f726020616e64207072756e6564206974732076616c7565207768656e2074686520636f72726573706f6e64696e672060457865637574696f6e496e626f7860206973207072756e65644c496e626f78656442756e646c65417574686f7200010406343004000c8d012041206d617070696e67206f66206062756e646c655f6865616465725f6861736860202d3e206062756e646c655f617574686f726020666f7220616c6c20746865207375636365737366756c6c79207375626d69747465642062756e646c6573206f66890120746865206c6173742060426c6f636b547265655072756e696e6744657074686020646f6d61696e20626c6f636b732e205573656420746f207665726966792074686520696e76616c69642062756e646c652066726175642070726f6f6620616e64f020736c617368206d616c6963696f7573206f70657261746f722077686f2068617665207375626d697474656420696e76616c69642062756e646c652e4048656164446f6d61696e4e756d62657201010406c81010000000001089012054686520626c6f636b206e756d626572206f6620746865206265737420646f6d61696e20626c6f636b2c20696e637265617365206279206f6e65207768656e207468652066697273742062756e646c65206f662074686520646f6d61696e2069738501207375636365737366756c6c79207375626d697474656420746f2063757272656e7420636f6e73656e73757320626c6f636b2c207768696368206d65616e2061206e657720646f6d61696e20626c6f636b2077697468207468697320626c6f636b9501206e756d6265722077696c6c2062652070726f647563652e2055736564206173206120706f696e74657220696e2060457865637574696f6e496e626f786020746f206964656e74696679207468652063757272656e7420756e646572206275696c64696e675d0120646f6d61696e20626c6f636b2c20616c736f20757365642061732061206d617070696e67206f6620636f6e73656e73757320626c6f636b206e756d62657220746f20646f6d61696e20626c6f636b206e756d6265722e704c61737445706f63685374616b696e67446973747269627574696f6e00010406c8c504040014290120412074656d706f726172792073746f7261676520746f20686f6c6420616e792070726576696f75732065706f63682064657461696c7320666f72206120676976656e20646f6d61696e2901206966207468652065706f6368207472616e736974696f6e656420696e207468697320626c6f636b20736f207468617420616c6c20746865207375626d69747465642062756e646c6573802077697468696e207468697320626c6f636b206172652076657269666965642e8d0120544f444f3a205468652073746f7261676520697320636c6561726564206f6e20626c6f636b2066696e616c697a6174696f6e2074686174206d65616e7320746869732073746f7261676520697320616c726561647920636c6561726564207768656ef020766572696679696e672074686520607375626d69745f62756e646c65602065787472696e73696320616e64206e6f74207573656420617420616c6c684c6174657374436f6e6669726d6564446f6d61696e426c6f636b00010406c8c904040004e42053746f7261676520746f20686f6c6420616c6c2074686520646f6d61696e2773206c617465737420636f6e6669726d656420626c6f636b2e444c61746573745375626d6974746564455201010406cd0410100000000018910120546865206c6174657374204552207375626d697474656420627920746865206f70657261746f7220666f72206120676976656e20646f6d61696e2e204974206973207573656420746f2064657465726d696e6520696620746865206f70657261746f72b820686173207375626d69747465642062616420455220616e642069732070656e64696e6720746f20736c6173682e005101205468652073746f72616765206974656d206f66206120676976656e206028646f6d61696e5f69642c206f70657261746f725f696429602077696c6c206265207072756e6564206166746572206569746865723a4501202d20416c6c2074686520455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e2061726520636f6e6669726d656420616e64207072756e65648d01202d20416c6c207468652062616420455273207375626d697474656420627920746865206f70657261746f7220666f72207468697320646f6d61696e20617265207072756e656420616e6420746865206f70657261746f7220697320736c61736865646c5065726d697373696f6e6564416374696f6e416c6c6f77656442790000d1030400045d012053746f7261676520666f72205065726d697373696f6e6564416374696f6e7320666f7220646f6d61696e20696e7374616e74696174696f6e20616e64206f74686572207065726d697373696f6e65642063616c6c732e60416363756d756c61746564547265617375727946756e6473010018400000000000000000000000000000000008550120416363756d756c6174652074726561737572792066756e64732074656d706f726172696c7920756e74696c207468652066756e6473206172652061626f7665204578697374656e7469616c20646573706f69742e250120576520646f207468697320746f20656e73757265206d696e74696e6720736d616c6c20616d6f756e747320696e746f20747265617375727920776f756c64206e6f74206661696c2e6c446f6d61696e52756e74696d65557067726164655265636f7264730101040610d1040400045d012053746f72616765207573656420746f206b65657020747261636b206f6620776869636820636f6e73656e73757320626c6f636b2074686520646f6d61696e2072756e74696d6520757067726164652068617070656e2e54446f6d61696e52756e74696d6555706772616465730100e10404000871012054656d706f726172792073746f72616765206b65657020747261636b206f6620646f6d61696e2072756e74696d6520757067726164652068617070656e20696e207468652063757272656e7420626c6f636b2c20636c65617265648820696e20746865206e65787420626c6f636b20696e697469616c697a6174696f6e2e48446f6d61696e547852616e6765537461746500010406c8e50404000001c10201c44c48436f6e6669726d6174696f6e44657074684b10106400000004e42053616d652077697468206070616c6c65745f73756273706163653a3a436f6e6669673a3a436f6e6669726d6174696f6e44657074684b602e64446f6d61696e52756e74696d655570677261646544656c617910104038000004ac2044656c6179206265666f7265206120646f6d61696e2072756e74696d652069732075706772616465642e54426c6f636b547265655072756e696e67446570746810104038000004782054686520626c6f636b2074726565207072756e696e672064657074682e60436f6e73656e737573536c6f7450726f626162696c6974791d024001000000000000000600000000000000048820436f6e73656e73757320636861696e20736c6f742070726f626162696c6974792e484d6178446f6d61696e426c6f636b53697a65101000003c0004b420546865206d6178696d756d20626c6f636b2073697a65206c696d697420666f7220616c6c20646f6d61696e2e504d6178446f6d61696e426c6f636b576569676874282c0b00c809ae2e010200d00004bc20546865206d6178696d756d20626c6f636b20776569676874206c696d697420666f7220616c6c20646f6d61696e2e484d617842756e646c6573506572426c6f636b10100a00000004cc20546865206d6178696d756d2062756e646c652070657220626c6f636b206c696d697420666f7220616c6c20646f6d61696e2e4c4d6178446f6d61696e4e616d654c656e67746810102000000004d420546865206d6178696d756d20646f6d61696e206e616d65206c656e677468206c696d697420666f7220616c6c20646f6d61696e2e68446f6d61696e496e7374616e74696174696f6e4465706f7369741840000010632d5ec76b05000000000000000411012054686520616d6f756e74206f662066756e6420746f206265206c6f636b656420757020666f722074686520646f6d61696e20696e7374616e63652063726561746f722e50496e697469616c446f6d61696e547852616e676530200300000000000000047c20496e697469616c20646f6d61696e2074782072616e67652076616c75652e7c446f6d61696e547852616e676541646a7573746d656e74496e74657276616c3020640000000000000004410120446f6d61696e2074782072616e67652069732061646a757374656420616674657220657665727920446f6d61696e547852616e676541646a7573746d656e74496e74657276616c20626c6f636b732e404d696e4f70657261746f725374616b651840000010632d5ec76b0500000000000000040101204d696e696d756d206f70657261746f72207374616b6520726571756972656420746f206265636f6d65206f70657261746f72206f66206120646f6d61696e2e444d696e4e6f6d696e61746f725374616b651840000064a7b3b6e00d000000000000000004ec204d696e696d756d206e6f6d696e61746f72207374616b6520726571756972656420746f206e6f6d696e61746520616e64206f70657261746f722e705374616b655769746864726177616c4c6f636b696e67506572696f64101040380000046d01204d696e696d756d206e756d626572206f6620626c6f636b7320616674657220776869636820616e792066696e616c697a6564207769746864726177616c73206172652072656c656173656420746f206e6f6d696e61746f72732e485374616b6545706f63684475726174696f6e101064000000048420446f6d61696e2065706f6368207472616e736974696f6e20696e74657276616c3c54726561737572794163636f756e7400806d6f646c747265617375727900000000000000000000000000000000000000000448205472656173757279206163636f756e742e684d617850656e64696e675374616b696e674f7065726174696f6e10100002000004610120546865206d6178696d756d206e756d626572206f662070656e64696e67207374616b696e67206f7065726174696f6e20746861742063616e20706572666f726d2075706f6e2065706f6368207472616e736974696f6e2e2050616c6c65744964f10420646f6d61696e735f0480205468652070616c6c65742d646f6d61696e7327732070616c6c65742069642e3c42756e646c654c6f6e67657669747910100500000004190120486f77206d616e7920626c6f636b20612062756e646c652073686f756c64207374696c6c20636f6e73696465722061732076616c69642061667465722070726f647563656401f5040c3852756e74696d65436f6e66696773013852756e74696d65436f6e666967731434456e61626c65446f6d61696e73010020040004ac205768657468657220746f20656e61626c652063616c6c7320696e2070616c6c65742d646f6d61696e732e68456e61626c6544796e616d6963436f73744f6653746f72616765010020040004ac205768657468657220746f20656e61626c652064796e616d696320636f7374206f662073746f726167652e58456e61626c6542616c616e63655472616e736665727301002004000498205768657468657220746f20656e61626c652062616c616e636573207472616e73666572732e48456e61626c654e6f6e526f6f7443616c6c73010020040004bc205768657468657220746f20656e61626c652063616c6c732066726f6d206e6f6e2d726f6f74206163636f756e742e48436f6e6669726d6174696f6e44657074684b01001010000000000001d5030000000e1c56657374696e67011c56657374696e67044056657374696e675363686564756c657301010402001d0504000c842056657374696e67207363686564756c6573206f6620616e206163636f756e742e00e02056657374696e675363686564756c65733a206d6170204163636f756e744964203d3e205665633c56657374696e675363686564756c653e01d90301d804444d696e5665737465645472616e7366657218400000000000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0121050d0c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000001e2c53756273706163654d6d72012c53756273706163654d6d7204344d6d72526f6f74486173686573000104051034040004a4204d6170206f6620626c6f636b206e756d6265727320746f206d6d7220726f6f74206861736865732e000000001f244d657373656e67657201244d657373656e67657234344e6578744368616e6e656c496401010406e8ec80000000000000000000000000000000000000000000000000000000000000000004c02053746f72657320746865206e657874206368616e6e656c20696420666f72206120666f726569676e20636861696e2e204368616e6e656c73000108060675022505040008a82053746f726573206368616e6e656c20636f6e666967206265747765656e2074776f20636861696e732e0d01204b657920706f696e747320746f2074686520666f726569676e20636861696e20777274206f776e20636861696e27732073746f72616765206e616d6520737061636514496e626f78000035050400086d0120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f64656420696e626f78206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d657373616765605420616e64206072656c61795f6d657373616765602e20496e626f784665650001040659051804000cf020412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e20696e626f78206d6573736167652e3901205468652073746f7261676520697320636c6561726564207768656e207468652061636b6e6f776c656467656d656e74206f6620696e626f7820726573706f6e7365206973207265636569766564502066726f6d20746865207372635f636861696e2e244f7574626f7846656500010406590518040008750120412074656d706f726172792073746f72616765206f66206665657320666f7220657865637574696e6720616e206f7574626f78206d65737361676520616e642069747320726573706f6e73652066726f6d206473745f636861696e2e3101205468652073746f7261676520697320636c6561726564207768656e207372635f636861696e2072656365697665732074686520726573706f6e73652066726f6d206473745f636861696e2e38496e626f78526573706f6e736573000104065d05350504000809012053746f72657320746865206d65737361676520726573706f6e736573206f662074686520696e636f6d696e672070726f63657373656420726573706f6e7365732edc205573656420627920746865206473745f636861696e7320746f2076657269667920746865206d65737361676520726573706f6e73652e60436f756e746572466f72496e626f78526573706f6e736573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184f7574626f78000104065d05350504000855012053746f72657320746865206f7574676f696e67206d65737361676573207468617420617265206177616974696e67206d65737361676520726573706f6e7365732066726f6d20746865206473745f636861696e2e1501204d65737361676573206172652070726f63657373656420696e20746865206f7574626f78206e6f6e6365206f72646572206f6620636861696e2773206368616e6e656c2e40436f756e746572466f724f7574626f78010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c4f7574626f78526573706f6e73657300003505040008b90120412074656d706f726172792073746f7261676520666f722073746f72696e67206465636f646564206f7574626f7820726573706f6e7365206d657373616765206265747765656e20607072655f64697370617463685f72656c61795f6d6573736167655f726573706f6e7365607820616e64206072656c61795f6d6573736167655f726573706f6e7365602e444d657373616765576569676874546167730000610504000445012053746f7261676520746f2073746f72652074686520776569676874207461677320666f7220616c6c20746865206f7574626f7820616e6420696e626f7820726573706f6e7365206d657373616765732e38436861696e416c6c6f776c69737401000104040004f820416e20616c6c6f776c697374206f6620636861696e7320746861742063616e206f70656e206368616e6e656c2077697468207468697320636861696e2e68446f6d61696e436861696e416c6c6f776c69737455706461746500010406c8fd0304000c890120412073746f7261676520746f2073746f726520616e7920616c6c6f776c697374207570646174657320746f20646f6d61696e2e2054686520757064617465732077696c6c20626520636c656172656420696e20746865206e65787420626c6f636b9501206f6e6365207468652070726576696f757320626c6f636b20686173206120646f6d61696e2062756e646c652c20627574206120656d7074792076616c75652073686f756c64206265206c656674206265636175736520696e2074686520696e76616c696479012065787472696e73696320726f6f742066726175642070726f6f66207468652070726f766572206e65656420746f2067656e657261746520612070726f6f662d6f662d656d7074792d76616c756520666f722074686520646f6d61696e2e01e10301e408444368616e6e656c526573657276654665651840000010632d5ec76b0500000000000000049c204368616e6e656c20726573657276652066656520746f206f70656e2061206368616e6e656c2e644368616e6e656c496e697452657365727665506f7274696f6e7d041000c2eb0b08c420506f7274696f6e206f66204368616e6e656c20726573657276652074616b656e206279207468652070726f746f636f6cfc20696620746865206368616e6e656c20697320696e20696e697420737461746520616e642069732072657175657374656420746f20626520636c6f7365642e0171053c2c5472616e73706f72746572012c5472616e73706f7274657214444f7574676f696e675472616e7366657273000108060659057505040004e820416c6c20746865206f7574676f696e67207472616e7366657273206f6e207468697320657865637574696f6e20656e7669726f6e6d656e742e38446f6d61696e42616c616e63657301010406c8184000000000000000000000000000000000044420446f6d61696e2062616c616e6365732e38436861696e5472616e73666572730100f502100000000008050120412074656d706f726172792073746f72616765207468617420747261636b7320746f74616c207472616e73666572732066726f6d207468697320636861696e2ea420436c65617273206f6e206f6e5f696e697469616c697a6520666f7220657665727920626c6f636b2e50556e636f6e6669726d65645472616e7366657273010108060679051840000000000000000000000000000000000405012053746f7261676520746f20747261636b20756e636f6e6669726d6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e4843616e63656c6c65645472616e73666572730101080606790518400000000000000000000000000000000004fc2053746f7261676520746f20747261636b2063616e63656c6c6564207472616e7366657273206265747765656e20646966666572656e7420636861696e732e01090401f800017d053d105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01110401010100018105648505042848436865636b4e6f6e5a65726f53656e6465729505c040436865636b5370656356657273696f6e99051038436865636b547856657273696f6e9d051030436865636b47656e65736973a1053438436865636b4d6f7274616c697479a5053428436865636b4e6f6e6365ad05c02c436865636b576569676874b105c0604368617267655472616e73616374696f6e5061796d656e74b505c048436865636b53746f72616765416363657373b905c03844697361626c6550616c6c657473bd05c0c105"} diff --git a/indexers/accounts-squid/hasura/hasura_metadata.json b/indexers/accounts-squid/hasura/hasura_metadata.json new file mode 100644 index 000000000..e69de29bb diff --git a/indexers/accounts-squid/package-lock.json b/indexers/accounts-squid/package-lock.json new file mode 100644 index 000000000..cdddb7680 --- /dev/null +++ b/indexers/accounts-squid/package-lock.json @@ -0,0 +1,5167 @@ +{ + "name": "staking-squid", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "staking-squid", + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@apollo/protobufjs": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.7.tgz", + "integrity": "sha512-Lahx5zntHPZia35myYDBRuF58tlwPskwHc5CWBZC/4bMKB6siTBWwtMrkqXcsNwQiFSzSx5hKdRPUmemrEp3Gg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "long": "^4.0.0" + }, + "bin": { + "apollo-pbjs": "bin/pbjs", + "apollo-pbts": "bin/pbts" + } + }, + "node_modules/@apollo/usage-reporting-protobuf": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@apollo/usage-reporting-protobuf/-/usage-reporting-protobuf-4.1.1.tgz", + "integrity": "sha512-u40dIUePHaSKVshcedO7Wp+mPiZsaU6xjv9J+VyxpoU/zL6Jle+9zWeG98tr/+SZ0nZ4OXhrbb8SNr0rAPpIDA==", + "dependencies": { + "@apollo/protobufjs": "1.2.7" + } + }, + "node_modules/@apollo/utils.dropunuseddefinitions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.dropunuseddefinitions/-/utils.dropunuseddefinitions-1.1.0.tgz", + "integrity": "sha512-jU1XjMr6ec9pPoL+BFWzEPW7VHHulVdGKMkPAMiCigpVIT11VmCbnij0bWob8uS3ODJ65tZLYKAh/55vLw2rbg==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.keyvadapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvadapter/-/utils.keyvadapter-1.1.2.tgz", + "integrity": "sha512-vPC5e97uwHuZ2iMHVrEeRsV4dLw0lNx2UY9APhb7StC/RMR3BdnuPwS/+5yR9tUF5IUut+iJZocHkS4y6mR9aA==", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "dataloader": "^2.1.0", + "keyv": "^4.4.0" + } + }, + "node_modules/@apollo/utils.keyvaluecache": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@apollo/utils.keyvaluecache/-/utils.keyvaluecache-1.0.2.tgz", + "integrity": "sha512-p7PVdLPMnPzmXSQVEsy27cYEjVON+SH/Wb7COyW3rQN8+wJgT1nv9jZouYtztWW8ZgTkii5T6tC9qfoDREd4mg==", + "dependencies": { + "@apollo/utils.logger": "^1.0.0", + "lru-cache": "7.10.1 - 7.13.1" + } + }, + "node_modules/@apollo/utils.logger": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.logger/-/utils.logger-1.0.1.tgz", + "integrity": "sha512-XdlzoY7fYNK4OIcvMD2G94RoFZbzTQaNP0jozmqqMudmaGo2I/2Jx71xlDJ801mWA/mbYRihyaw6KJii7k5RVA==" + }, + "node_modules/@apollo/utils.printwithreducedwhitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.printwithreducedwhitespace/-/utils.printwithreducedwhitespace-1.1.0.tgz", + "integrity": "sha512-GfFSkAv3n1toDZ4V6u2d7L4xMwLA+lv+6hqXicMN9KELSJ9yy9RzuEXaX73c/Ry+GzRsBy/fdSUGayGqdHfT2Q==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.removealiases": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.removealiases/-/utils.removealiases-1.0.0.tgz", + "integrity": "sha512-6cM8sEOJW2LaGjL/0vHV0GtRaSekrPQR4DiywaApQlL9EdROASZU5PsQibe2MWeZCOhNrPRuHh4wDMwPsWTn8A==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.sortast": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.sortast/-/utils.sortast-1.1.0.tgz", + "integrity": "sha512-VPlTsmUnOwzPK5yGZENN069y6uUHgeiSlpEhRnLFYwYNoJHsuJq2vXVwIaSmts015WTPa2fpz1inkLYByeuRQA==", + "dependencies": { + "lodash.sortby": "^4.7.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.stripsensitiveliterals": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@apollo/utils.stripsensitiveliterals/-/utils.stripsensitiveliterals-1.2.0.tgz", + "integrity": "sha512-E41rDUzkz/cdikM5147d8nfCFVKovXxKBcjvLEQ7bjZm/cg9zEcXvS6vFY8ugTubI3fn6zoqo0CyU8zT+BGP9w==", + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollo/utils.usagereporting": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@apollo/utils.usagereporting/-/utils.usagereporting-1.0.1.tgz", + "integrity": "sha512-6dk+0hZlnDbahDBB2mP/PZ5ybrtCJdLMbeNJD+TJpKyZmSY6bA3SjI8Cr2EM9QA+AdziywuWg+SgbWUF3/zQqQ==", + "dependencies": { + "@apollo/usage-reporting-protobuf": "^4.0.0", + "@apollo/utils.dropunuseddefinitions": "^1.1.0", + "@apollo/utils.printwithreducedwhitespace": "^1.1.0", + "@apollo/utils.removealiases": "1.0.0", + "@apollo/utils.sortast": "^1.1.0", + "@apollo/utils.stripsensitiveliterals": "^1.2.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x || 16.x" + } + }, + "node_modules/@apollographql/apollo-tools": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.5.4.tgz", + "integrity": "sha512-shM3q7rUbNyXVVRkQJQseXv6bnYM3BUma/eZhwXR4xsuM+bqWnJKvW7SAfRjP7LuSCocrexa5AXhjjawNHrIlw==", + "engines": { + "node": ">=8", + "npm": ">=6" + }, + "peerDependencies": { + "graphql": "^14.2.1 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@apollographql/graphql-playground-html": { + "version": "1.6.29", + "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz", + "integrity": "sha512-xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==", + "dependencies": { + "xss": "^1.0.8" + } + }, + "node_modules/@autonomys/auto-consensus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-consensus/-/auto-consensus-0.2.0.tgz", + "integrity": "sha512-2kfHOVOXgdhoMAcRP46J4Tk3qeuT/CHetJNtjcVPY0H3ojGPpmfaFg2jBenQqGz59TacjSjLhSouA5UlY7iDJg==", + "dependencies": { + "@autonomys/auto-utils": "^0.2.0" + } + }, + "node_modules/@autonomys/auto-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@autonomys/auto-utils/-/auto-utils-0.2.0.tgz", + "integrity": "sha512-uu4OxTWXGQk09HxmQsJQTmrcKAqwdTdGQy/zUloVm5/IAYPKmI1ttSPI/5BSUxeoKsBd69XFfb3wqtYfO5/ytw==", + "dependencies": { + "@polkadot/api": "^11.2.1", + "@polkadot/extension-dapp": "^0.47.5", + "fs": "^0.0.1-security" + } + }, + "node_modules/@exodus/schemasafe": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz", + "integrity": "sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==", + "dev": true + }, + "node_modules/@graphql-tools/merge": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.3.tgz", + "integrity": "sha512-FeKv9lKLMwqDu0pQjPpF59GY3HReUkWXKsMIuMuJQOKh9BETu7zPEFUELvcw8w+lwZkl4ileJsHXC9+AnsT2Lw==", + "dependencies": { + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock": { + "version": "8.7.20", + "resolved": "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.7.20.tgz", + "integrity": "sha512-ljcHSJWjC/ZyzpXd5cfNhPI7YljRVvabKHPzKjEs5ElxWu2cdlLGvyNYepApXDsM/OJG/2xuhGM+9GWu5gEAPQ==", + "dependencies": { + "@graphql-tools/schema": "^9.0.18", + "@graphql-tools/utils": "^9.2.1", + "fast-json-stable-stringify": "^2.1.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/merge": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.4.2.tgz", + "integrity": "sha512-XbrHAaj8yDuINph+sAfuq3QCZ/tKblrTLOpirK0+CAgNlZUCHs0Fa+xtMUURgwCVThLle1AF7svJCxFizygLsw==", + "dependencies": { + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/schema": { + "version": "9.0.19", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.19.tgz", + "integrity": "sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==", + "dependencies": { + "@graphql-tools/merge": "^8.4.1", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/mock/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/schema": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.3.tgz", + "integrity": "sha512-p28Oh9EcOna6i0yLaCFOnkcBDQECVf3SCexT6ktb86QNj9idnkhI+tCxnwZDh58Qvjd2nURdkbevvoZkvxzCog==", + "dependencies": { + "@graphql-tools/merge": "^9.0.3", + "@graphql-tools/utils": "^10.0.13", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.1.2.tgz", + "integrity": "sha512-fX13CYsDnX4yifIyNdiN0cVygz/muvkreWWem6BBw130+ODbRRgfiVveL0NizCEnKXkpvdeTy9Bxvo9LIKlhrw==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@ioredis/commands": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz", + "integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@josephg/resolvable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", + "integrity": "sha512-CtzORUwWTTOTqfVtHaKRJ0I1kNQd1bpn3sUh8I3nJDVY+5/M/Oe1DnEWzPQvqq/xPIIkzzzIP7mfCoAjFRvDhg==" + }, + "node_modules/@keyv/redis": { + "version": "2.5.8", + "resolved": "https://registry.npmjs.org/@keyv/redis/-/redis-2.5.8.tgz", + "integrity": "sha512-WweuUZqZN2ETcseV6r1AEum1qG6eR5poNhkZ4CIpWBOjMasT2ArTKWyIPxxYllKUS2A8wKv1l8+AqH6Jpzk7Ug==", + "dependencies": { + "ioredis": "^5.3.2" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@polkadot-api/json-rpc-provider": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider/-/json-rpc-provider-0.0.1.tgz", + "integrity": "sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==", + "optional": true + }, + "node_modules/@polkadot-api/json-rpc-provider-proxy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/json-rpc-provider-proxy/-/json-rpc-provider-proxy-0.0.1.tgz", + "integrity": "sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==", + "optional": true + }, + "node_modules/@polkadot-api/metadata-builders": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/metadata-builders/-/metadata-builders-0.0.1.tgz", + "integrity": "sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==", + "optional": true, + "dependencies": { + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/utils": "0.0.1" + } + }, + "node_modules/@polkadot-api/observable-client": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@polkadot-api/observable-client/-/observable-client-0.1.0.tgz", + "integrity": "sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==", + "optional": true, + "dependencies": { + "@polkadot-api/metadata-builders": "0.0.1", + "@polkadot-api/substrate-bindings": "0.0.1", + "@polkadot-api/substrate-client": "0.0.1", + "@polkadot-api/utils": "0.0.1" + }, + "peerDependencies": { + "rxjs": ">=7.8.0" + } + }, + "node_modules/@polkadot-api/substrate-bindings": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-bindings/-/substrate-bindings-0.0.1.tgz", + "integrity": "sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==", + "optional": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "@polkadot-api/utils": "0.0.1", + "@scure/base": "^1.1.1", + "scale-ts": "^1.6.0" + } + }, + "node_modules/@polkadot-api/substrate-client": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/substrate-client/-/substrate-client-0.0.1.tgz", + "integrity": "sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==", + "optional": true + }, + "node_modules/@polkadot-api/utils": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@polkadot-api/utils/-/utils-0.0.1.tgz", + "integrity": "sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==", + "optional": true + }, + "node_modules/@polkadot/api": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-11.3.1.tgz", + "integrity": "sha512-q4kFIIHTLvKxM24b0Eo8hJevsPMme+aITJGrDML9BgdZYTRN14+cu5nXiCsQvaEamdyYj+uCXWe2OV9X7pPxsA==", + "dependencies": { + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/api-derive": "11.3.1", + "@polkadot/keyring": "^12.6.2", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/types-known": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-11.3.1.tgz", + "integrity": "sha512-Yj+6rb6h0WwY3yJ+UGhjGW+tyMRFUMsKQuGw+eFsXdjiNU9UoXsAqA2dG7Q1F+oeX/g+y2gLGBezNoCwbl6HfA==", + "dependencies": { + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-base": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz", + "integrity": "sha512-b8UkNL00NN7+3QaLCwL5cKg+7YchHoKCAhwKusWHNBZkkO6Oo2BWilu0dZkPJOyqV9P389Kbd9+oH+SKs9u2VQ==", + "dependencies": { + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/api-derive": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz", + "integrity": "sha512-9dopzrh4cRuft1nANmBvMY/hEhFDu0VICMTOGxQLOl8NMfcOFPTLAN0JhSBUoicGZhV+c4vpv01NBx/7/IL1HA==", + "dependencies": { + "@polkadot/api": "11.3.1", + "@polkadot/api-augment": "11.3.1", + "@polkadot/api-base": "11.3.1", + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/extension-dapp": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-dapp/-/extension-dapp-0.47.6.tgz", + "integrity": "sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng==", + "dependencies": { + "@polkadot/extension-inject": "0.47.6", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*", + "@polkadot/util-crypto": "*" + } + }, + "node_modules/@polkadot/extension-inject": { + "version": "0.47.6", + "resolved": "https://registry.npmjs.org/@polkadot/extension-inject/-/extension-inject-0.47.6.tgz", + "integrity": "sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g==", + "dependencies": { + "@polkadot/api": "^11.3.1", + "@polkadot/rpc-provider": "^11.3.1", + "@polkadot/types": "^11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/api": "*", + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/keyring": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", + "integrity": "sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==", + "dependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/util-crypto": "12.6.2" + } + }, + "node_modules/@polkadot/networks": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", + "integrity": "sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==", + "dependencies": { + "@polkadot/util": "12.6.2", + "@substrate/ss58-registry": "^1.44.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz", + "integrity": "sha512-2PaDcKNju4QYQpxwVkWbRU3M0t340nMX9cMo+8awgvgL1LliV/fUDZueMKLuSS910JJMTPQ7y2pK4eQgMt08gQ==", + "dependencies": { + "@polkadot/rpc-core": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-core": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz", + "integrity": "sha512-KKNepsDd/mpmXcA6v/h14eFFPEzLGd7nrvx2UUXUxoZ0Fq2MH1hplP3s93k1oduNY/vOXJR2K9S4dKManA6GVQ==", + "dependencies": { + "@polkadot/rpc-augment": "11.3.1", + "@polkadot/rpc-provider": "11.3.1", + "@polkadot/types": "11.3.1", + "@polkadot/util": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/rpc-provider": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz", + "integrity": "sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-support": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "@polkadot/x-fetch": "^12.6.2", + "@polkadot/x-global": "^12.6.2", + "@polkadot/x-ws": "^12.6.2", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@substrate/connect": "0.8.10" + } + }, + "node_modules/@polkadot/types": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz", + "integrity": "sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==", + "dependencies": { + "@polkadot/keyring": "^12.6.2", + "@polkadot/types-augment": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/util": "^12.6.2", + "@polkadot/util-crypto": "^12.6.2", + "rxjs": "^7.8.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-augment": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-11.3.1.tgz", + "integrity": "sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==", + "dependencies": { + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-codec": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz", + "integrity": "sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==", + "dependencies": { + "@polkadot/util": "^12.6.2", + "@polkadot/x-bigint": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-create": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz", + "integrity": "sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==", + "dependencies": { + "@polkadot/types-codec": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-known": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz", + "integrity": "sha512-3BIof7u6tn9bk3ZCIxA07iNoQ3uj4+vn3DTOjCKECozkRlt6V+kWRvqh16Hc0SHMg/QjcMb2fIu/WZhka1McUQ==", + "dependencies": { + "@polkadot/networks": "^12.6.2", + "@polkadot/types": "11.3.1", + "@polkadot/types-codec": "11.3.1", + "@polkadot/types-create": "11.3.1", + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/types-support": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz", + "integrity": "sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==", + "dependencies": { + "@polkadot/util": "^12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", + "integrity": "sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==", + "dependencies": { + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-global": "12.6.2", + "@polkadot/x-textdecoder": "12.6.2", + "@polkadot/x-textencoder": "12.6.2", + "@types/bn.js": "^5.1.5", + "bn.js": "^5.2.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/util-crypto": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-12.6.2.tgz", + "integrity": "sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==", + "dependencies": { + "@noble/curves": "^1.3.0", + "@noble/hashes": "^1.3.3", + "@polkadot/networks": "12.6.2", + "@polkadot/util": "12.6.2", + "@polkadot/wasm-crypto": "^7.3.2", + "@polkadot/wasm-util": "^7.3.2", + "@polkadot/x-bigint": "12.6.2", + "@polkadot/x-randomvalues": "12.6.2", + "@scure/base": "^1.1.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2" + } + }, + "node_modules/@polkadot/wasm-bridge": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.3.2.tgz", + "integrity": "sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==", + "dependencies": { + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.3.2.tgz", + "integrity": "sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==", + "dependencies": { + "@polkadot/wasm-bridge": "7.3.2", + "@polkadot/wasm-crypto-asmjs": "7.3.2", + "@polkadot/wasm-crypto-init": "7.3.2", + "@polkadot/wasm-crypto-wasm": "7.3.2", + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-asmjs": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-7.3.2.tgz", + "integrity": "sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-init": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.3.2.tgz", + "integrity": "sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==", + "dependencies": { + "@polkadot/wasm-bridge": "7.3.2", + "@polkadot/wasm-crypto-asmjs": "7.3.2", + "@polkadot/wasm-crypto-wasm": "7.3.2", + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*", + "@polkadot/x-randomvalues": "*" + } + }, + "node_modules/@polkadot/wasm-crypto-wasm": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.3.2.tgz", + "integrity": "sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==", + "dependencies": { + "@polkadot/wasm-util": "7.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/wasm-util": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.3.2.tgz", + "integrity": "sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "*" + } + }, + "node_modules/@polkadot/x-bigint": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", + "integrity": "sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-fetch": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", + "integrity": "sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "node-fetch": "^3.3.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-global": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", + "integrity": "sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-randomvalues": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", + "integrity": "sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@polkadot/util": "12.6.2", + "@polkadot/wasm-util": "*" + } + }, + "node_modules/@polkadot/x-textdecoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", + "integrity": "sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-textencoder": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", + "integrity": "sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polkadot/x-ws": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", + "integrity": "sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==", + "dependencies": { + "@polkadot/x-global": "12.6.2", + "tslib": "^2.6.2", + "ws": "^8.15.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@scure/base": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", + "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz", + "integrity": "sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==" + }, + "node_modules/@subsquid/graphiql-console": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/graphiql-console/-/graphiql-console-0.3.0.tgz", + "integrity": "sha512-C89mus6IXnNi0xMQrZqUFBZwLj8tbuq9lye8Gq/lHmmERAUpi6UsWEyLdJLx2mneZzF3JtY8eNiiZ16jmjtvfw==" + }, + "node_modules/@subsquid/graphql-server": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/graphql-server/-/graphql-server-4.5.1.tgz", + "integrity": "sha512-PMC5Kc9ptjhrBIBRvvhkHiSRUEGJqv6Bc838VnvLtF5kMrGjSI+pPUiA5t+rhdfxywX1j+ZEdBpaRypAGo6Otw==", + "dependencies": { + "@apollo/utils.keyvadapter": "~1.1.2", + "@apollo/utils.keyvaluecache": "~1.0.2", + "@graphql-tools/merge": "^9.0.1", + "@graphql-tools/schema": "^10.0.2", + "@graphql-tools/utils": "^10.0.11", + "@keyv/redis": "~2.5.8", + "@subsquid/logger": "^1.3.3", + "@subsquid/openreader": "^4.5.1", + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-http-server": "^2.0.0", + "@subsquid/util-internal-ts-node": "^0.0.0", + "apollo-server-core": "^3.13.0", + "apollo-server-express": "^3.13.0", + "apollo-server-plugin-response-cache": "~3.7.1", + "commander": "^11.1.0", + "dotenv": "^16.3.1", + "express": "^4.18.2", + "graphql": "^15.8.0", + "graphql-ws": "^5.14.2", + "keyv": "~4.5.4", + "pg": "^8.11.3", + "ws": "^8.14.2" + }, + "bin": { + "squid-graphql-server": "bin/run.js" + }, + "peerDependencies": { + "@subsquid/big-decimal": "^1.0.0", + "class-validator": "^0.14.0", + "type-graphql": "^1.2.0-rc.1", + "typeorm": "^0.3.17" + }, + "peerDependenciesMeta": { + "@subsquid/big-decimal": { + "optional": true + }, + "class-validator": { + "optional": true + }, + "type-graphql": { + "optional": true + }, + "typeorm": { + "optional": true + } + } + }, + "node_modules/@subsquid/http-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/http-client/-/http-client-1.4.0.tgz", + "integrity": "sha512-y+exFBQygbdvhmMrXVMUMkSQnmW8w7jz7zbRSCvjJRfmzXLjIi9dOQT2eIGN7e9GY/MvsW/qpDJEWhIbkcHsuw==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "node-fetch": "^3.3.2" + } + }, + "node_modules/@subsquid/logger": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@subsquid/logger/-/logger-1.3.3.tgz", + "integrity": "sha512-BdoRVIOrIRzKdMZPoJxzJzPLulf5Q09GeLtJn0whP+rhDV5nQ4ANDAzjPg9jmgH9WkMYAr2XH4lny/4PjhQUNA==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-json": "^1.2.2", + "supports-color": "^8.1.1" + } + }, + "node_modules/@subsquid/openreader": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@subsquid/openreader/-/openreader-4.5.1.tgz", + "integrity": "sha512-N4aFZ0AzYiFCzocqbW971M8LOIKo9E8d4lt5He4x8Jcm19hwYYlNy8wwnOv1USCxFO/uCPZm/RTkARlyjOL10A==", + "dependencies": { + "@graphql-tools/merge": "^9.0.1", + "@subsquid/graphiql-console": "^0.3.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-http-server": "^2.0.0", + "@subsquid/util-naming": "^1.2.2", + "apollo-server-core": "^3.13.0", + "apollo-server-express": "^3.13.0", + "commander": "^11.1.0", + "deep-equal": "^2.2.3", + "express": "^4.18.2", + "graphql": "^15.8.0", + "graphql-parse-resolve-info": "^4.14.0", + "graphql-ws": "^5.14.2", + "pg": "^8.11.3", + "ws": "^8.14.2" + }, + "bin": { + "openreader": "bin/main.js" + }, + "peerDependencies": { + "@subsquid/big-decimal": "^1.0.0" + }, + "peerDependenciesMeta": { + "@subsquid/big-decimal": { + "optional": true + } + } + }, + "node_modules/@subsquid/rpc-client": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@subsquid/rpc-client/-/rpc-client-4.8.0.tgz", + "integrity": "sha512-cFtxw1O/8iWYcp/bJmErPTDnMOm1YHuK1MnDoMDlG+q+yCFW8YzvFayNwOjnzyIaJuwoluMeMw1euW3EOaRLAg==", + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-binary-heap": "^1.0.0", + "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-json-fix-unsafe-integers": "^0.0.0", + "websocket": "^1.0.34" + } + }, + "node_modules/@subsquid/scale-codec": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@subsquid/scale-codec/-/scale-codec-4.0.1.tgz", + "integrity": "sha512-H3mi5GIvlrvOSJVSYQRNnaiulSDktPF4TwUvquAgN86tN4kokyX8XcEM2Htrm1sVWRtMi7SgYpyVR5Yg5iPKUQ==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-json": "^1.2.2" + } + }, + "node_modules/@subsquid/scale-type-system": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", + "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", + "peer": true, + "dependencies": { + "@subsquid/util-internal": "^3.0.0" + }, + "peerDependencies": { + "@subsquid/scale-codec": "^4.0.1" + } + }, + "node_modules/@subsquid/ss58": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@subsquid/ss58/-/ss58-2.0.2.tgz", + "integrity": "sha512-2chHMJ7jXvZzYQiXiA5MYYAVBobPcnQxWt3/jsiiZT6vWorjlVElXoQjZ0G/FKRHCcJ4GD10zDd8sG+7sPp2fw==", + "dependencies": { + "@subsquid/ss58-codec": "^1.2.3", + "@subsquid/util-internal-hex": "^1.2.2" + } + }, + "node_modules/@subsquid/ss58-codec": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/ss58-codec/-/ss58-codec-1.2.3.tgz", + "integrity": "sha512-PFWGOYDVEa1F+u5NoH4pJcBRCe4vv6B0U4nvgmwTA+PShhVB8aC6TjZZmMOE8/BLEDjRIpT7avpz7VR7zI6H0A==", + "dependencies": { + "base-x": "^4.0.0", + "blake2b": "^2.1.4" + } + }, + "node_modules/@subsquid/substrate-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data/-/substrate-data-4.0.4.tgz", + "integrity": "sha512-Ad5B1f4I4SqmGJfOAjuKF5zD2B6VSYNx67XpfHcNMoT9yBc8tTf87EEYb37wty1K6s6ZZTh60zWec2dUviIltA==", + "dependencies": { + "@subsquid/scale-codec": "^4.0.1", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-xxhash": "^1.2.2", + "@substrate/calc": "^0.2.8", + "blake2b": "^2.1.4" + }, + "peerDependencies": { + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/substrate-data-raw": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-data-raw/-/substrate-data-raw-1.1.2.tgz", + "integrity": "sha512-7avtgVy77acgPG8zBoJ9siTpuZ3stNdUojTP4RQeJrArpR4jbyh6Ui3Cv2nIfLPxNfVpV11qoPQ1XVKv7vb0vQ==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-timeout": "^2.3.2" + }, + "peerDependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.7.0" + } + }, + "node_modules/@subsquid/substrate-metadata-explorer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-metadata-explorer/-/substrate-metadata-explorer-3.1.2.tgz", + "integrity": "sha512-wITx+R5REa25uRFKF2fsWC3bOFOde80MEZrgfbjs5aAt4eNKHOL6s61g4xJRNIqXrRG20Drl/gLkBdMYSjnIgQ==", + "dev": true, + "dependencies": { + "@subsquid/logger": "^1.3.2", + "@subsquid/rpc-client": "^4.5.0", + "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal-commander": "^1.3.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-read-lines": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-substrate-metadata-explorer": "bin/run.js", + "substrate-metadata-explorer": "bin/run.js" + } + }, + "node_modules/@subsquid/substrate-processor": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-processor/-/substrate-processor-8.3.0.tgz", + "integrity": "sha512-EX6bzrCfmFErMayAqAEivCW7QmTc5gK/SDNLEoQXvVValAJgzXp1Ur/y58Isr5XsBogQ0OY8cSzQYD1dgkGqjA==", + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/rpc-client": "^4.8.0", + "@subsquid/substrate-data": "^4.0.4", + "@subsquid/substrate-data-raw": "^1.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-archive-client": "^0.1.2", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-internal-ingest-tools": "^1.1.2", + "@subsquid/util-internal-json": "^1.2.3", + "@subsquid/util-internal-processor-tools": "^4.1.0", + "@subsquid/util-internal-range": "^0.3.0", + "@subsquid/util-internal-validation": "^0.4.0" + }, + "peerDependencies": { + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/substrate-runtime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz", + "integrity": "sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw==", + "peer": true, + "dependencies": { + "@subsquid/scale-codec": "^4.0.1", + "@subsquid/scale-type-system": "^1.0.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-hex": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "@subsquid/util-xxhash": "^1.2.2", + "blake2b": "^2.1.4" + } + }, + "node_modules/@subsquid/substrate-typegen": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/substrate-typegen/-/substrate-typegen-8.1.0.tgz", + "integrity": "sha512-4wEuti5ldhUdzyguZQi7IImQFflXrzz9TjviuKXSChrePs5M1oMFhtJw5X5oMDBmRB/xDY9YLioNUPArxC6O3g==", + "dev": true, + "dependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3", + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-internal-config": "^2.2.2", + "@subsquid/util-internal-read-lines": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-substrate-typegen": "bin/run.js" + }, + "peerDependencies": { + "@subsquid/substrate-runtime": "^2.0.0" + } + }, + "node_modules/@subsquid/typeorm-codegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-codegen/-/typeorm-codegen-2.0.0.tgz", + "integrity": "sha512-AZ3rQr/uT3wOmequjfrfkp0sOl7XGj2yG33gNelJOTtbMOfqRucI82lP+eslnmiAORX2dzDvbs97hIvxpf2WMA==", + "dev": true, + "dependencies": { + "@subsquid/openreader": "^4.5.1", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-naming": "^1.2.2", + "commander": "^11.1.0" + }, + "bin": { + "squid-typeorm-codegen": "bin/run.js" + } + }, + "node_modules/@subsquid/typeorm-config": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-config/-/typeorm-config-4.1.0.tgz", + "integrity": "sha512-onZsHQIypCTRguOeec1Gmm+6EPlTg63QNE7Y74nrbBb4sabZtrK3K+EQJId4KIdk/kxA2Wi/g5H/VDNZNFSe9A==", + "dependencies": { + "@subsquid/logger": "^1.3.2", + "@subsquid/util-internal-ts-node": "^0.0.0", + "@subsquid/util-naming": "^1.2.2" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + }, + "peerDependenciesMeta": { + "typeorm": { + "optional": true + } + } + }, + "node_modules/@subsquid/typeorm-migration": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-migration/-/typeorm-migration-1.3.0.tgz", + "integrity": "sha512-+xyOvN5asKdSEUMjKRuuwLDaOSRBBCRc2LIVdsyv5nnXXcmtOShfQsHQNX9EdKD2xx4cH2bnD7ol3PY63Q2xQw==", + "dependencies": { + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.0.0", + "@subsquid/util-internal-code-printer": "^1.2.2", + "@subsquid/util-internal-ts-node": "^0.0.0", + "commander": "^11.1.0", + "dotenv": "^16.3.1" + }, + "bin": { + "squid-typeorm-migration": "bin/squid-typeorm-migration", + "squid-typeorm-migration-apply": "bin/squid-typeorm-migration-apply", + "squid-typeorm-migration-create": "bin/squid-typeorm-migration-create", + "squid-typeorm-migration-generate": "bin/squid-typeorm-migration-generate", + "squid-typeorm-migration-revert": "bin/squid-typeorm-migration-revert" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + } + }, + "node_modules/@subsquid/typeorm-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/typeorm-store/-/typeorm-store-1.4.0.tgz", + "integrity": "sha512-Ff96ySH3btbGC8QgFkMEtuylz8lrBeAcbBSy/XF9pQLDdpun01yxekJwmKKPswQxYqSQgwEt38Nmp2jvC0BysQ==", + "dependencies": { + "@subsquid/typeorm-config": "^4.1.0", + "@subsquid/util-internal": "^3.1.0" + }, + "peerDependencies": { + "typeorm": "^0.3.17" + } + }, + "node_modules/@subsquid/util-internal": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal/-/util-internal-3.1.0.tgz", + "integrity": "sha512-m1lIiy7Tc2+QR5Jcx9eGsVsB4ASR/bA5Z9gnB+qUy1BzYuz5FEiJOYCQm6J5Bt+VnYDYYyANEUMq4Cl3J5wuSg==" + }, + "node_modules/@subsquid/util-internal-archive-client": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-archive-client/-/util-internal-archive-client-0.1.2.tgz", + "integrity": "sha512-XATZWOIHUqIuqzb9hxaFIsz/BItb5qLoYjk6uhFcR9ART2AExXLU5l26SvSrq3hUnqfznIkQMZVQ1SKqnGzx4g==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" + }, + "peerDependencies": { + "@subsquid/http-client": "^1.4.0", + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-internal-binary-heap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-binary-heap/-/util-internal-binary-heap-1.0.0.tgz", + "integrity": "sha512-88auuc8yNFmCZugmJSTYzS7WM/nN2obKGQCgrl8Jty5rJUFbqazGSi8icqftKhv6MPtUMJ3PSTRLiTFXAUGnAA==" + }, + "node_modules/@subsquid/util-internal-code-printer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-code-printer/-/util-internal-code-printer-1.2.2.tgz", + "integrity": "sha512-uerf8T/FU4bxxhat09MgRrdmwifLwV+tO7QvlMvZ5ccwaVrJjHs+0/LY/h1e9YowH3+ZtwPqjYrd5tNOHWX8wA==" + }, + "node_modules/@subsquid/util-internal-commander": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-commander/-/util-internal-commander-1.3.2.tgz", + "integrity": "sha512-9/1vI1dmGQMp5wjN6hb94VCnSosT+caob33tAesFaIdqLzqQlDtlTSRq1TFFossAgtsEJFi7GiQ8i31L/gaxSQ==", + "peerDependencies": { + "commander": "^11.1.0" + } + }, + "node_modules/@subsquid/util-internal-config": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-config/-/util-internal-config-2.2.2.tgz", + "integrity": "sha512-Qc8YH8eoPWrOoPHLnXJ/ksPo2pLpa126bY7qaM22/++Nk8DyexLxgbjYZTBeIHd/DXjTfgJpDDfxmCyy5RWZmA==", + "dev": true, + "dependencies": { + "@exodus/schemasafe": "^1.3.0", + "jsonc-parser": "^3.2.0" + } + }, + "node_modules/@subsquid/util-internal-counters": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-counters/-/util-internal-counters-1.3.2.tgz", + "integrity": "sha512-GxpOIL36JXSo0KdOT7k6CsI4DY804rn/X7pTdfKhych0ReHaDghnwNyvgb7Njv9euEHWUt4MxXbfQ9YrbpPDng==" + }, + "node_modules/@subsquid/util-internal-hex": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-hex/-/util-internal-hex-1.2.2.tgz", + "integrity": "sha512-E43HVqf23jP5hvtWF9GsiN8luANjnJ1daR2SVTwaIUAYU/uNjv1Bi6tHz2uexlflBhyxAgBDmHgunXZ45wQTIw==" + }, + "node_modules/@subsquid/util-internal-http-server": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-http-server/-/util-internal-http-server-2.0.0.tgz", + "integrity": "sha512-MUAJGMuDjbA3B+KQFZmMkm9FuWVx067pINt+EWuq3fSZqYPr1kRkTCTSJK7uT6Q8omqJtJFRWveyOWlXmixvfg==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "stoppable": "^1.1.0" + } + }, + "node_modules/@subsquid/util-internal-ingest-tools": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ingest-tools/-/util-internal-ingest-tools-1.1.2.tgz", + "integrity": "sha512-1fgi4W6x1B2+fYLGwjo+R4FjbLvR2b9h2/0EEqT8Ww6o4V15EubLf1TjBr8o/AWGN5Y/eYaMqWlFzbQsKQlcUQ==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-range": "^0.3.0" + }, + "peerDependencies": { + "@subsquid/util-internal-archive-client": "^0.1.2" + }, + "peerDependenciesMeta": { + "@subsquid/util-internal-archive-client": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-internal-json": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json/-/util-internal-json-1.2.3.tgz", + "integrity": "sha512-H5qW5kG20IzVMpb7GhPbVRxGuACEf1DPIXE1+LNXYxt8t/GX4zQREQWHRvCB3lck+RORLJD3WJbQUtxN5UYB3Q==", + "dependencies": { + "@subsquid/util-internal-hex": "^1.2.2" + } + }, + "node_modules/@subsquid/util-internal-json-fix-unsafe-integers": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-json-fix-unsafe-integers/-/util-internal-json-fix-unsafe-integers-0.0.0.tgz", + "integrity": "sha512-mtbN15IgXtV4yo98RQla+O3DhFwB28o3JTBrFuBc/i/qzxyZNbKoVdq/uczomGdXrHxGkWhTDe/istIQe9gn6w==" + }, + "node_modules/@subsquid/util-internal-processor-tools": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-processor-tools/-/util-internal-processor-tools-4.1.0.tgz", + "integrity": "sha512-7yOsPTB+sTSntNa79NVHo+lHFFs/QtJttut0IYp89gXNEOhAZdJ2MrwawHVTW+DEZ+UILMOO356fos42On9yGw==", + "dependencies": { + "@subsquid/logger": "^1.3.3", + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-counters": "^1.3.2", + "@subsquid/util-internal-prometheus-server": "^1.3.0", + "@subsquid/util-internal-range": "^0.3.0", + "prom-client": "^14.2.0" + } + }, + "node_modules/@subsquid/util-internal-prometheus-server": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-prometheus-server/-/util-internal-prometheus-server-1.3.0.tgz", + "integrity": "sha512-E/ch5mxBg1CIGPsuAqUAQ7vVln2oTPm+Rl+0WYweH8JeZ81rD01XAmxhDuZzZnMMMzfZd9W4NlE4mCXbhSY1Ug==", + "dependencies": { + "@subsquid/util-internal-http-server": "^2.0.0" + }, + "peerDependencies": { + "prom-client": "^14.2.0" + } + }, + "node_modules/@subsquid/util-internal-range": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-range/-/util-internal-range-0.3.0.tgz", + "integrity": "sha512-5/oDNW0TS66o4vWRzYSYXEfNnFRZsAzoi4pZNdPn7n1l+xV7ZTa0Y57XA6cP5hrWCaIYav4z1zECPngLDV/qeQ==", + "dependencies": { + "@subsquid/util-internal": "^3.1.0", + "@subsquid/util-internal-binary-heap": "^1.0.0" + } + }, + "node_modules/@subsquid/util-internal-read-lines": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-read-lines/-/util-internal-read-lines-1.2.2.tgz", + "integrity": "sha512-D9Cks2KVmVQMsJLFskQlwufykWiLLooDFmAYmgwSkZEVnCqJ1ukX8PZfkI+ADfhT5LB64O9FZL7hI0939qiXBA==", + "dev": true + }, + "node_modules/@subsquid/util-internal-ts-node": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-ts-node/-/util-internal-ts-node-0.0.0.tgz", + "integrity": "sha512-VBnrKrkNcqbT3hMLrjpEPuwMAihFhW9oUmK53bccBCCXrUiATNUblQD2S4IWd9/UBO5Q33ohpbE9sAodDq2DXw==" + }, + "node_modules/@subsquid/util-internal-validation": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@subsquid/util-internal-validation/-/util-internal-validation-0.4.0.tgz", + "integrity": "sha512-YrwzbMd2Ez4ufCHDWc/AZpNqZ8LR/YCJ+1Aox5HF46INvkFVun5g5YI3HjXReMwvwrpT4Gsy+JvDTYvaHtTUlQ==", + "peerDependencies": { + "@subsquid/logger": "^1.3.3" + }, + "peerDependenciesMeta": { + "@subsquid/logger": { + "optional": true + } + } + }, + "node_modules/@subsquid/util-naming": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-naming/-/util-naming-1.2.2.tgz", + "integrity": "sha512-NveXOiAbWiWkWd3Iv2jEwSAKvQHOG/HfIsPmmNab8TPX/XgJ6J5Ngx6lHEiqs746m4sOhZ2yipxKAEDgrERaxA==", + "dependencies": { + "camelcase": "^6.3.0", + "inflected": "^2.1.0" + } + }, + "node_modules/@subsquid/util-timeout": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-timeout/-/util-timeout-2.3.2.tgz", + "integrity": "sha512-DVUnuiWAX7/4ZvbzuHENUShEEV4G0M38mQ/+R8DpHxwpCSrtEaSRaUMwdyUSn/WVqR7wo9+jkLCxFjE5feCURQ==" + }, + "node_modules/@subsquid/util-xxhash": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@subsquid/util-xxhash/-/util-xxhash-1.2.2.tgz", + "integrity": "sha512-S49O4bxs80y3/oBl1xKBE/zzvDPLr88yE+03zfOXaNj/wesTGzicqBxhzDULmyo6kpdRmc0ZPOZCQ3U6gNQpxQ==", + "dependencies": { + "xxhash-wasm": "^1.0.2", + "xxhashjs": "^0.2.2" + } + }, + "node_modules/@substrate/calc": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@substrate/calc/-/calc-0.2.8.tgz", + "integrity": "sha512-1c3mxf35FBeOswduhy0Wil9s4exHahXFo974qa0Ci2AORX8JTxmwhBb10+3Ls9iWoTFwvgOaFr9v1HeRL5tCig==" + }, + "node_modules/@substrate/connect": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.8.10.tgz", + "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==", + "deprecated": "versions below 1.x are no longer maintained", + "optional": true, + "dependencies": { + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "@substrate/light-client-extension-helpers": "^0.0.6", + "smoldot": "2.0.22" + } + }, + "node_modules/@substrate/connect-extension-protocol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.0.0.tgz", + "integrity": "sha512-nKu8pDrE3LNCEgJjZe1iGXzaD6OSIDD4Xzz/yo4KO9mQ6LBvf49BVrt4qxBFGL6++NneLiWUZGoh+VSd4PyVIg==", + "optional": true + }, + "node_modules/@substrate/connect-known-chains": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@substrate/connect-known-chains/-/connect-known-chains-1.2.0.tgz", + "integrity": "sha512-BgcTHKteSAcEQs5ySNTYOO6ODQHVHwPgDrjYQhL0r8ZygY4cyXa5e2O//3tXNJiDopFHdqO8FBAy2Gbht0i0PA==", + "optional": true + }, + "node_modules/@substrate/light-client-extension-helpers": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@substrate/light-client-extension-helpers/-/light-client-extension-helpers-0.0.6.tgz", + "integrity": "sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==", + "optional": true, + "dependencies": { + "@polkadot-api/json-rpc-provider": "0.0.1", + "@polkadot-api/json-rpc-provider-proxy": "0.0.1", + "@polkadot-api/observable-client": "0.1.0", + "@polkadot-api/substrate-client": "0.0.1", + "@substrate/connect-extension-protocol": "^2.0.0", + "@substrate/connect-known-chains": "^1.1.4", + "rxjs": "^7.8.1" + }, + "peerDependencies": { + "smoldot": "2.x" + } + }, + "node_modules/@substrate/ss58-registry": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.49.0.tgz", + "integrity": "sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA==" + }, + "node_modules/@types/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Pay9fq2lM2wXPWbteBsRAGiWH2hig4ZE2asK+mm7kUzlxRTfL961rj89I6zV/E3PcIkDqyuBEcMxFT7rccugeQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/bn.js": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", + "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/apollo-datasource": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.2.tgz", + "integrity": "sha512-L5TiS8E2Hn/Yz7SSnWIVbZw0ZfEIXZCa5VUiVxD9P53JvSrf4aStvsFDlGWPvpIdCR+aly2CfoB79B9/JjKFqg==", + "deprecated": "The `apollo-datasource` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "apollo-server-env": "^4.2.1" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/apollo-reporting-protobuf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.4.0.tgz", + "integrity": "sha512-h0u3EbC/9RpihWOmcSsvTW2O6RXVaD/mPEjfrPkxRPTEPWqncsgOoRJw+wih4OqfH3PvTJvoEIf4LwKrUaqWog==", + "deprecated": "The `apollo-reporting-protobuf` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/usage-reporting-protobuf` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/protobufjs": "1.2.6" + } + }, + "node_modules/apollo-reporting-protobuf/node_modules/@apollo/protobufjs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.2.6.tgz", + "integrity": "sha512-Wqo1oSHNUj/jxmsVp4iR3I480p6qdqHikn38lKrFhfzcDJ7lwd7Ck7cHRl4JE81tWNArl77xhnG/OkZhxKBYOw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.0", + "@types/node": "^10.1.0", + "long": "^4.0.0" + }, + "bin": { + "apollo-pbjs": "bin/pbjs", + "apollo-pbts": "bin/pbts" + } + }, + "node_modules/apollo-reporting-protobuf/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/apollo-server-core": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.13.0.tgz", + "integrity": "sha512-v/g6DR6KuHn9DYSdtQijz8dLOkP78I5JSVJzPkARhDbhpH74QNwrQ2PP2URAPPEDJ2EeZNQDX8PvbYkAKqg+kg==", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "@apollo/utils.usagereporting": "^1.0.0", + "@apollographql/apollo-tools": "^0.5.3", + "@apollographql/graphql-playground-html": "1.6.29", + "@graphql-tools/mock": "^8.1.2", + "@graphql-tools/schema": "^8.0.0", + "@josephg/resolvable": "^1.0.0", + "apollo-datasource": "^3.3.2", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1", + "apollo-server-errors": "^3.3.1", + "apollo-server-plugin-base": "^3.7.2", + "apollo-server-types": "^3.8.0", + "async-retry": "^1.2.1", + "fast-json-stable-stringify": "^2.1.0", + "graphql-tag": "^2.11.0", + "loglevel": "^1.6.8", + "lru-cache": "^6.0.0", + "node-abort-controller": "^3.0.1", + "sha.js": "^2.4.11", + "uuid": "^9.0.0", + "whatwg-mimetype": "^3.0.0" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/merge": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.1.tgz", + "integrity": "sha512-BMm99mqdNZbEYeTPK3it9r9S6rsZsQKtlqJsSBknAclXq2pGEfOxjcIZi+kBSkHZKPKCRrYDd5vY0+rUmIHVLg==", + "dependencies": { + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/schema": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.5.1.tgz", + "integrity": "sha512-0Esilsh0P/qYcB5DKQpiKeQs/jevzIadNTaT0jeWklPMwNbT7yMX4EqZany7mbeRRlSRwMzNzL5olyFdffHBZg==", + "dependencies": { + "@graphql-tools/merge": "8.3.1", + "@graphql-tools/utils": "8.9.0", + "tslib": "^2.4.0", + "value-or-promise": "1.0.11" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/@graphql-tools/utils": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.9.0.tgz", + "integrity": "sha512-pjJIWH0XOVnYGXCqej8g/u/tsfV4LvLlj0eATKQu5zwnxd/TiTHq7Cg313qUPTFFHZ3PP5wJ15chYVtLDwaymg==", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/apollo-server-core/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/apollo-server-core/node_modules/value-or-promise": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", + "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/apollo-server-env": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.1.tgz", + "integrity": "sha512-vm/7c7ld+zFMxibzqZ7SSa5tBENc4B0uye9LTfjJwGoQFY5xsUPH5FpO5j0bMUDZ8YYNbrF9SNtzc5Cngcr90g==", + "deprecated": "The `apollo-server-env` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/utils.fetcher` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "node-fetch": "^2.6.7" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/apollo-server-env/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/apollo-server-errors": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.1.tgz", + "integrity": "sha512-xnZJ5QWs6FixHICXHxUfm+ZWqqxrNuPlQ+kj5m6RtEgIpekOPssH/SD9gf2B4HuWV0QozorrygwZnux8POvyPA==", + "deprecated": "The `apollo-server-errors` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-express": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.13.0.tgz", + "integrity": "sha512-iSxICNbDUyebOuM8EKb3xOrpIwOQgKxGbR2diSr4HP3IW8T3njKFOoMce50vr+moOCe1ev8BnLcw9SNbuUtf7g==", + "dependencies": { + "@types/accepts": "^1.3.5", + "@types/body-parser": "1.19.2", + "@types/cors": "2.8.12", + "@types/express": "4.17.14", + "@types/express-serve-static-core": "4.17.31", + "accepts": "^1.3.5", + "apollo-server-core": "^3.13.0", + "apollo-server-types": "^3.8.0", + "body-parser": "^1.19.0", + "cors": "^2.8.5", + "parseurl": "^1.3.3" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "express": "^4.17.1", + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-plugin-base": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.7.2.tgz", + "integrity": "sha512-wE8dwGDvBOGehSsPTRZ8P/33Jan6/PmL0y0aN/1Z5a5GcbFhDaaJCjK5cav6npbbGL2DPKK0r6MPXi3k3N45aw==", + "deprecated": "The `apollo-server-plugin-base` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "apollo-server-types": "^3.8.0" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-plugin-response-cache": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-response-cache/-/apollo-server-plugin-response-cache-3.7.1.tgz", + "integrity": "sha512-3FHwwySf1kQl8dGC+2E08LtDeFGUOeqckLchAD1REYx1vwMZbGhmEIwaNezjXwxkTM5Y7l38n0vQTka6YoQN7w==", + "deprecated": "The `apollo-server-plugin-response-cache` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server-plugin-response-cache` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "apollo-server-plugin-base": "^3.6.3", + "apollo-server-types": "^3.6.3" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/apollo-server-types": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.8.0.tgz", + "integrity": "sha512-ZI/8rTE4ww8BHktsVpb91Sdq7Cb71rdSkXELSwdSR0eXu600/sY+1UXhTWdiJvk+Eq5ljqoHLwLbY2+Clq2b9A==", + "deprecated": "The `apollo-server-types` package is part of Apollo Server v2 and v3, which are now deprecated (end-of-life October 22nd 2023 and October 22nd 2024, respectively). This package's functionality is now found in the `@apollo/server` package. See https://www.apollographql.com/docs/apollo-server/previous-versions/ for more details.", + "dependencies": { + "@apollo/utils.keyvaluecache": "^1.0.1", + "@apollo/utils.logger": "^1.0.0", + "apollo-reporting-protobuf": "^3.4.0", + "apollo-server-env": "^4.2.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "graphql": "^15.3.0 || ^16.0.0" + } + }, + "node_modules/app-root-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.1.0.tgz", + "integrity": "sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async-retry": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz", + "integrity": "sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw==", + "dependencies": { + "retry": "0.13.1" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bintrees": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", + "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" + }, + "node_modules/blake2b": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", + "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", + "dependencies": { + "blake2b-wasm": "^2.4.0", + "nanoassert": "^2.0.0" + } + }, + "node_modules/blake2b-wasm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", + "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-highlight/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "engines": { + "node": ">=16" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-inspect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", + "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==" + }, + "node_modules/cuint": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", + "integrity": "sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/dataloader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==" + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dset": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", + "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphql": { + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", + "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-parse-resolve-info": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/graphql-parse-resolve-info/-/graphql-parse-resolve-info-4.14.0.tgz", + "integrity": "sha512-5Fbquh3IZMciLYgtiWeFxAeZOwpPyonhbaN05fzL/Gll0HS0hMqJh1Q88NQLHiASD6//cJ3LTXLncuajRqsUcA==", + "dependencies": { + "debug": "^4.1.1", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "peerDependencies": { + "graphql": ">=0.9 <0.14 || ^14.0.2 || ^15.4.0 || ^16.3.0" + } + }, + "node_modules/graphql-parse-resolve-info/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/graphql-parse-resolve-info/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/graphql-ws": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz", + "integrity": "sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": ">=0.11 <=16" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflected": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz", + "integrity": "sha512-hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ioredis": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz", + "integrity": "sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA==", + "dependencies": { + "@ioredis/commands": "^1.1.1", + "cluster-key-slot": "^1.1.0", + "debug": "^4.3.4", + "denque": "^2.1.0", + "lodash.defaults": "^4.2.0", + "lodash.isarguments": "^3.1.0", + "redis-errors": "^1.2.0", + "redis-parser": "^3.0.0", + "standard-as-callback": "^2.1.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ioredis" + } + }, + "node_modules/ioredis/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ioredis/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/loglevel": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/lru-cache": { + "version": "7.13.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.13.1.tgz", + "integrity": "sha512-CHqbAq7NFlW3RSnoWXLJBxCWaZVBrfa9UEHId2M3AW8iEBurbqduNexEUCGc3SHc6iCYXNJCDi903LajSVAEPQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mock-socket": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.3.1.tgz", + "integrity": "sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoassert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", + "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/nock": { + "version": "13.5.4", + "resolved": "https://registry.npmjs.org/nock/-/nock-13.5.4.tgz", + "integrity": "sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw==", + "dependencies": { + "debug": "^4.1.0", + "json-stringify-safe": "^5.0.1", + "propagate": "^2.0.0" + }, + "engines": { + "node": ">= 10.13" + } + }, + "node_modules/nock/node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nock/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pg": { + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prom-client": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-14.2.0.tgz", + "integrity": "sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==", + "dependencies": { + "tdigest": "^0.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/propagate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", + "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/redis-errors": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz", + "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/redis-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz", + "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==", + "dependencies": { + "redis-errors": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scale-ts": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/scale-ts/-/scale-ts-1.6.0.tgz", + "integrity": "sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==", + "optional": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smoldot": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/smoldot/-/smoldot-2.0.22.tgz", + "integrity": "sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==", + "optional": true, + "dependencies": { + "ws": "^8.8.1" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/standard-as-callback": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz", + "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tdigest": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", + "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", + "dependencies": { + "bintrees": "1.0.2" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typeorm": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.20.tgz", + "integrity": "sha512-sJ0T08dV5eoZroaq9uPKBoNcGslHBR4E4y+EBHs//SiGbblGe7IeduP/IH4ddCcj0qp3PHwDwGnuvqEAnKlq/Q==", + "dependencies": { + "@sqltools/formatter": "^1.2.5", + "app-root-path": "^3.1.0", + "buffer": "^6.0.3", + "chalk": "^4.1.2", + "cli-highlight": "^2.1.11", + "dayjs": "^1.11.9", + "debug": "^4.3.4", + "dotenv": "^16.0.3", + "glob": "^10.3.10", + "mkdirp": "^2.1.3", + "reflect-metadata": "^0.2.1", + "sha.js": "^2.4.11", + "tslib": "^2.5.0", + "uuid": "^9.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">=16.13.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2 || ^8.0.0 || ^9.0.0", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^5.8.0", + "mssql": "^9.1.1 || ^10.0.1", + "mysql2": "^2.2.5 || ^3.0.1", + "oracledb": "^6.3.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-or-promise": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/websocket": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", + "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xss": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz", + "integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xss/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/xxhash-wasm": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", + "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==" + }, + "node_modules/xxhashjs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/xxhashjs/-/xxhashjs-0.2.2.tgz", + "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", + "dependencies": { + "cuint": "^0.2.2" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + } + } +} diff --git a/indexers/accounts-squid/package.json b/indexers/accounts-squid/package.json new file mode 100644 index 000000000..da2683127 --- /dev/null +++ b/indexers/accounts-squid/package.json @@ -0,0 +1,48 @@ +{ + "name": "accounts-squid", + "version": "1.0.0", + "private": true, + "engines": { + "node": ">=16" + }, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "scripts": { + "typegen": "sqd typegen", + "codegen": "sqd codegen", + "migration": "sqd migration:generate", + "build": "rm -rf lib && tsc", + "process": "sqd process", + "deploy": "sqd deploy --org autonomys-labs .", + "format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc" + }, + "dependencies": { + "@autonomys/auto-consensus": "^0.2.0", + "@autonomys/auto-utils": "^0.2.0", + "@subsquid/graphql-server": "^4.5.1", + "@subsquid/ss58": "^2.0.2", + "@subsquid/substrate-processor": "^8.3.0", + "@subsquid/typeorm-migration": "^1.3.0", + "@subsquid/typeorm-store": "^1.4.0", + "dotenv": "^16.4.5", + "pg": "8.11.5", + "typeorm": "^0.3.20" + }, + "devDependencies": { + "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-typegen": "^8.1.0", + "@subsquid/substrate-runtime": "^2.0.0", + "@subsquid/typeorm-codegen": "^2.0.0", + "@types/node": "^20.12.7", + "typescript": "^5.4.5" + } +} diff --git a/indexers/accounts-squid/schema.graphql b/indexers/accounts-squid/schema.graphql new file mode 100644 index 000000000..b55624144 --- /dev/null +++ b/indexers/accounts-squid/schema.graphql @@ -0,0 +1,25 @@ +type Account @entity { + id: ID! @index + nonce: BigInt! + free: BigInt! + reserved: BigInt! + total: BigInt @index + createdAt: Int! @index + updatedAt: Int! @index +} + +type Transfer @entity { + id: ID! @index + from: String! @index + to: String! @index + value: BigInt! + fee: BigInt! + timestamp: BigInt! @index + date: DateTime! @index + createdAt: Int! @index +} + +type SlackMessage @entity { + id: ID! @index + messageId: String! @index +} \ No newline at end of file diff --git a/indexers/accounts-squid/squid.yaml b/indexers/accounts-squid/squid.yaml new file mode 100644 index 000000000..445fdd9f3 --- /dev/null +++ b/indexers/accounts-squid/squid.yaml @@ -0,0 +1,35 @@ +manifestVersion: subsquid.io/v0.1 +name: accounts-squid +version: 4 +description: Autonomys - Astral - Accounts Indexer +build: +deploy: + env: + HASURA_GRAPHQL_ADMIN_SECRET: '${{ secrets.HASURA_SECRET }}' + HASURA_GRAPHQL_UNAUTHORIZED_ROLE: user + HASURA_GRAPHQL_STRINGIFY_NUMERIC_TYPES: 'true' + addons: + postgres: + hasura: + processor: + cmd: + - sqd + - process:prod + env: + CONSENSUS_GATEWAY: ${{ secrets.CONSENSUS_GATEWAY }} + RPC_CONSENSUS_HTTP: ${{ secrets.RPC_CONSENSUS_ENDPOINT }} + SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }} + SLACK_CONVERSATION_ID: ${{ secrets.SLACK_CONVERSATION_ID }} + api: + cmd: + - sqd + - serve:prod + +scale: + dedicated: true + addons: + postgres: + storage: 10G + profile: medium + processor: + profile: medium diff --git a/indexers/accounts-squid/src/main.ts b/indexers/accounts-squid/src/main.ts new file mode 100644 index 000000000..99ac66672 --- /dev/null +++ b/indexers/accounts-squid/src/main.ts @@ -0,0 +1,101 @@ +import { createConnection } from '@autonomys/auto-utils' +import { TypeormDatabase } from '@subsquid/typeorm-store' +import { assertNotNull } from '@subsquid/util-internal' +import { SlackMessage } from './model' +import { processor } from './processor' +import { getOrCreateAccount, getOrCreateTransfer } from './storage' +import { events } from './types' +import { account } from './types/system/storage' +import { + getBlockNumber, + hexToAccount, + logBlock +} from './utils' +import { Cache, LastSlackMsg, load, save } from './utils/cache' +import { sendSlackStatsMessage } from './utils/slack' + +const types = { + Solution: { + public_key: 'AccountId32', + reward_address: 'AccountId32', + }, + SubPreDigest: { + slot: 'u64', + solution: 'Solution', + }, +} + +processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { + const api = await createConnection( + assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC_CONSENSUS_HTTP env'), + { types }, + ) + + let cache: Cache = await load(ctx) + + const logMsg = logBlock(ctx.blocks) + const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + const lastSlackMsg = cache.slackMessages.get(lastSlackMsgKey) + const slackMsg = await sendSlackStatsMessage(logMsg, lastSlackMsg ? lastSlackMsg.messageId : undefined) + if (slackMsg) cache.slackMessages.set(lastSlackMsgKey, new SlackMessage({ + id: lastSlackMsgKey, + messageId: slackMsg, + })) + cache.isModified = true + + for (let block of ctx.blocks) { + for (const extrinsic of block.extrinsics) { + for (const event of extrinsic.events) { + if (event.name === events.balances.transfer.name) { + const from = hexToAccount(event.args.from) + const to = hexToAccount(event.args.to) + const amount = BigInt(event.args.amount) + + const blockNumber = getBlockNumber(block) + + const fromAct = await account.v0.get(block.header, event.args.from) + const toAct = await account.v0.get(block.header, event.args.to) + + if (fromAct) { + const fromAccount = getOrCreateAccount(cache, block, from) + fromAccount.nonce = BigInt(fromAct.nonce) + fromAccount.free = fromAct.data.free + fromAccount.reserved = fromAct.data.reserved + fromAccount.total = fromAct.data.free + fromAct.data.reserved + fromAccount.updatedAt = blockNumber + + cache.accounts.set(fromAccount.id, fromAccount) + } + + if (toAct) { + const toAccount = getOrCreateAccount(cache, block, to) + toAccount.nonce = BigInt(toAct.nonce) + toAccount.free = toAct.data.free + toAccount.reserved = toAct.data.reserved + toAccount.total = toAct.data.free + toAct.data.reserved + toAccount.updatedAt = blockNumber + + cache.accounts.set(toAccount.id, toAccount) + } + + const transfer = getOrCreateTransfer(cache, block, event.id, { + from, + to, + value: amount, + fee: BigInt(extrinsic.fee ?? 0), + timestamp: BigInt(block.header.timestamp ?? 0), + }) + cache.transfers.set(transfer.id, transfer) + + cache.isModified = true + } + } + } + + if (block.header.height % 100 === 0) await save(ctx, cache) + } + + await save(ctx, cache) + + await api.disconnect() +}) diff --git a/indexers/accounts-squid/src/model/index.ts b/indexers/accounts-squid/src/model/index.ts new file mode 100644 index 000000000..99735f641 --- /dev/null +++ b/indexers/accounts-squid/src/model/index.ts @@ -0,0 +1 @@ +export * from './generated' diff --git a/indexers/accounts-squid/src/processor.ts b/indexers/accounts-squid/src/processor.ts new file mode 100644 index 000000000..9d31ccc26 --- /dev/null +++ b/indexers/accounts-squid/src/processor.ts @@ -0,0 +1,75 @@ +import { + BlockHeader, + DataHandlerContext, + SubstrateBatchProcessor, + SubstrateBatchProcessorFields, + Call as _Call, + Event as _Event, + Extrinsic as _Extrinsic, +} from '@subsquid/substrate-processor' +import { assertNotNull } from '@subsquid/util-internal' +import { events } from './types' + +export const processor = new SubstrateBatchProcessor() + .setGateway(assertNotNull(process.env.CONSENSUS_GATEWAY, 'No Gateway endpoint supplied')) + .setRpcEndpoint({ + url: assertNotNull(process.env.RPC_CONSENSUS_HTTP, 'No RPC endpoint supplied'), + // More RPC connection options at https://docs.subsquid.io/substrate-indexing/setup/general/#set-data-source + rateLimit: 10, + }) + .setBlockRange({ + from: 0, + }) + .addEvent({ + name: [ + // accounts + events.balances.transfer.name, + events.system.extrinsicSuccess.name, + events.transactionPayment.transactionFeePaid.name, + // operators & nominators + events.domains.operatorRewarded.name, + events.domains.operatorTaxCollected.name, + events.domains.operatorRegistered.name, + events.domains.operatorNominated.name, + events.domains.withdrewStake.name, + events.domains.storageFeeDeposited.name, + ], + call: true, + stack: true, + extrinsic: true, + }) + .setFields({ + block: { + height: true, + hash: true, + timestamp: true, + }, + extrinsic: { + index: true, + version: true, + fee: true, + success: true, + hash: true, + }, + call: { + address: true, + name: true, + args: true, + origin: true, + }, + event: { + name: true, + args: true, + }, + }) + +export type Fields = SubstrateBatchProcessorFields +export type Block = BlockHeader +export type Event = _Event +export type Call = _Call +export type Extrinsic = _Extrinsic +export type ProcessorContext = DataHandlerContext +export type Ctx = ProcessorContext +export type CtxBlock = Ctx['blocks'][0] +export type CtxExtrinsic = CtxBlock['extrinsics'][0] +export type CtxEvent = CtxExtrinsic['events'][0] diff --git a/indexers/accounts-squid/src/storage/account.ts b/indexers/accounts-squid/src/storage/account.ts new file mode 100644 index 000000000..4f7870e65 --- /dev/null +++ b/indexers/accounts-squid/src/storage/account.ts @@ -0,0 +1,35 @@ +import { Account } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber } from '../utils' +import { Cache } from '../utils/cache' + +export const createAccount = ( + block: CtxBlock, + address: string, + props: Partial = {}, +): Account => { + const blockNumber = getBlockNumber(block) + return new Account({ + id: address, + nonce: props.nonce ?? BigInt(0), + free: props.free ?? BigInt(0), + reserved: props.reserved ?? BigInt(0), + total: props.total ?? BigInt(0), + ...props, + createdAt: blockNumber, + updatedAt: blockNumber, + }) +} + +export const getOrCreateAccount = ( + cache: Cache, + block: CtxBlock, + address: string, + props: Partial = {}, +): Account => { + const account = cache.accounts.get(address) + + if (!account) return createAccount(block, address, props) + + return account +} diff --git a/indexers/accounts-squid/src/storage/index.ts b/indexers/accounts-squid/src/storage/index.ts new file mode 100644 index 000000000..86b44af1f --- /dev/null +++ b/indexers/accounts-squid/src/storage/index.ts @@ -0,0 +1,3 @@ +export * from './account' +export * from './transfer' + diff --git a/indexers/accounts-squid/src/storage/transfer.ts b/indexers/accounts-squid/src/storage/transfer.ts new file mode 100644 index 000000000..9371ad02f --- /dev/null +++ b/indexers/accounts-squid/src/storage/transfer.ts @@ -0,0 +1,35 @@ +import { Transfer } from '../model' +import type { CtxBlock } from '../processor' +import { getBlockNumber, getTimestamp } from '../utils' +import { Cache } from '../utils/cache' + +export const createTransfer = ( + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const blockNumber = getBlockNumber(block) + return new Transfer({ + id: id, + from: props.from ?? '', + to: props.to ?? '', + value: props.value ?? BigInt(0), + fee: props.fee ?? BigInt(0), + timestamp: props.timestamp ?? BigInt(0), + date: props.date ?? getTimestamp(block), + createdAt: blockNumber, + }) +} + +export const getOrCreateTransfer = ( + cache: Cache, + block: CtxBlock, + id: string, + props: Partial = {}, +): Transfer => { + const transfer = cache.transfers.get(id) + + if (!transfer) return createTransfer(block, id, props) + + return transfer +} diff --git a/indexers/accounts-squid/src/types/balances/calls.ts b/indexers/accounts-squid/src/types/balances/calls.ts new file mode 100644 index 000000000..03fbec1ea --- /dev/null +++ b/indexers/accounts-squid/src/types/balances/calls.ts @@ -0,0 +1,119 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v5 from '../v5' + +export const transferAllowDeath = { + name: 'Balances.transfer_allow_death', + /** + * See [`Pallet::transfer_allow_death`]. + */ + v0: new CallType( + 'Balances.transfer_allow_death', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const forceTransfer = { + name: 'Balances.force_transfer', + /** + * See [`Pallet::force_transfer`]. + */ + v0: new CallType( + 'Balances.force_transfer', + sts.struct({ + source: v0.MultiAddress, + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const transferKeepAlive = { + name: 'Balances.transfer_keep_alive', + /** + * See [`Pallet::transfer_keep_alive`]. + */ + v0: new CallType( + 'Balances.transfer_keep_alive', + sts.struct({ + dest: v0.MultiAddress, + value: sts.bigint(), + }) + ), +} + +export const transferAll = { + name: 'Balances.transfer_all', + /** + * See [`Pallet::transfer_all`]. + */ + v0: new CallType( + 'Balances.transfer_all', + sts.struct({ + dest: v0.MultiAddress, + keepAlive: sts.boolean(), + }) + ), +} + +export const forceUnreserve = { + name: 'Balances.force_unreserve', + /** + * See [`Pallet::force_unreserve`]. + */ + v0: new CallType( + 'Balances.force_unreserve', + sts.struct({ + who: v0.MultiAddress, + amount: sts.bigint(), + }) + ), +} + +export const upgradeAccounts = { + name: 'Balances.upgrade_accounts', + /** + * See [`Pallet::upgrade_accounts`]. + */ + v0: new CallType( + 'Balances.upgrade_accounts', + sts.struct({ + who: sts.array(() => v0.AccountId32), + }) + ), +} + +export const forceSetBalance = { + name: 'Balances.force_set_balance', + /** + * See [`Pallet::force_set_balance`]. + */ + v0: new CallType( + 'Balances.force_set_balance', + sts.struct({ + who: v0.MultiAddress, + newFree: sts.bigint(), + }) + ), +} + +export const forceAdjustTotalIssuance = { + name: 'Balances.force_adjust_total_issuance', + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + */ + v5: new CallType( + 'Balances.force_adjust_total_issuance', + sts.struct({ + direction: v5.AdjustmentDirection, + delta: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/balances/constants.ts b/indexers/accounts-squid/src/types/balances/constants.ts new file mode 100644 index 000000000..5cab2c7e3 --- /dev/null +++ b/indexers/accounts-squid/src/types/balances/constants.ts @@ -0,0 +1,59 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const existentialDeposit = { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + */ + v0: new ConstantType( + 'Balances.ExistentialDeposit', + sts.bigint() + ), +} + +export const maxLocks = { + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + */ + v0: new ConstantType( + 'Balances.MaxLocks', + sts.number() + ), +} + +export const maxReserves = { + /** + * The maximum number of named reserves that can exist on an account. + */ + v0: new ConstantType( + 'Balances.MaxReserves', + sts.number() + ), +} + +export const maxHolds = { + /** + * The maximum number of holds that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxHolds', + sts.number() + ), +} + +export const maxFreezes = { + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + */ + v0: new ConstantType( + 'Balances.MaxFreezes', + sts.number() + ), +} diff --git a/indexers/accounts-squid/src/types/balances/events.ts b/indexers/accounts-squid/src/types/balances/events.ts new file mode 100644 index 000000000..fda7f6e59 --- /dev/null +++ b/indexers/accounts-squid/src/types/balances/events.ts @@ -0,0 +1,312 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const endowed = { + name: 'Balances.Endowed', + /** + * An account was created with some free balance. + */ + v0: new EventType( + 'Balances.Endowed', + sts.struct({ + account: v0.AccountId32, + freeBalance: sts.bigint(), + }) + ), +} + +export const dustLost = { + name: 'Balances.DustLost', + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ + v0: new EventType( + 'Balances.DustLost', + sts.struct({ + account: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const transfer = { + name: 'Balances.Transfer', + /** + * Transfer succeeded. + */ + v0: new EventType( + 'Balances.Transfer', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const balanceSet = { + name: 'Balances.BalanceSet', + /** + * A balance was set by root. + */ + v0: new EventType( + 'Balances.BalanceSet', + sts.struct({ + who: v0.AccountId32, + free: sts.bigint(), + }) + ), +} + +export const reserved = { + name: 'Balances.Reserved', + /** + * Some balance was reserved (moved from free to reserved). + */ + v0: new EventType( + 'Balances.Reserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const unreserved = { + name: 'Balances.Unreserved', + /** + * Some balance was unreserved (moved from reserved to free). + */ + v0: new EventType( + 'Balances.Unreserved', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const reserveRepatriated = { + name: 'Balances.ReserveRepatriated', + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ + v0: new EventType( + 'Balances.ReserveRepatriated', + sts.struct({ + from: v0.AccountId32, + to: v0.AccountId32, + amount: sts.bigint(), + destinationStatus: v0.BalanceStatus, + }) + ), +} + +export const deposit = { + name: 'Balances.Deposit', + /** + * Some amount was deposited (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Deposit', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const withdraw = { + name: 'Balances.Withdraw', + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ + v0: new EventType( + 'Balances.Withdraw', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const slashed = { + name: 'Balances.Slashed', + /** + * Some amount was removed from the account (e.g. for misbehavior). + */ + v0: new EventType( + 'Balances.Slashed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const minted = { + name: 'Balances.Minted', + /** + * Some amount was minted into an account. + */ + v0: new EventType( + 'Balances.Minted', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const burned = { + name: 'Balances.Burned', + /** + * Some amount was burned from an account. + */ + v0: new EventType( + 'Balances.Burned', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const suspended = { + name: 'Balances.Suspended', + /** + * Some amount was suspended from an account (it can be restored later). + */ + v0: new EventType( + 'Balances.Suspended', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const restored = { + name: 'Balances.Restored', + /** + * Some amount was restored into an account. + */ + v0: new EventType( + 'Balances.Restored', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const upgraded = { + name: 'Balances.Upgraded', + /** + * An account was upgraded. + */ + v0: new EventType( + 'Balances.Upgraded', + sts.struct({ + who: v0.AccountId32, + }) + ), +} + +export const issued = { + name: 'Balances.Issued', + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ + v0: new EventType( + 'Balances.Issued', + sts.struct({ + amount: sts.bigint(), + }) + ), +} + +export const rescinded = { + name: 'Balances.Rescinded', + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ + v0: new EventType( + 'Balances.Rescinded', + sts.struct({ + amount: sts.bigint(), + }) + ), +} + +export const locked = { + name: 'Balances.Locked', + /** + * Some balance was locked. + */ + v0: new EventType( + 'Balances.Locked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const unlocked = { + name: 'Balances.Unlocked', + /** + * Some balance was unlocked. + */ + v0: new EventType( + 'Balances.Unlocked', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const frozen = { + name: 'Balances.Frozen', + /** + * Some balance was frozen. + */ + v0: new EventType( + 'Balances.Frozen', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const thawed = { + name: 'Balances.Thawed', + /** + * Some balance was thawed. + */ + v0: new EventType( + 'Balances.Thawed', + sts.struct({ + who: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const totalIssuanceForced = { + name: 'Balances.TotalIssuanceForced', + /** + * The `TotalIssuance` was forcefully changed. + */ + v5: new EventType( + 'Balances.TotalIssuanceForced', + sts.struct({ + old: sts.bigint(), + new: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/balances/storage.ts b/indexers/accounts-squid/src/types/balances/storage.ts new file mode 100644 index 000000000..5f4a19212 --- /dev/null +++ b/indexers/accounts-squid/src/types/balances/storage.ts @@ -0,0 +1,253 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' + +export const totalIssuance = { + /** + * The total units issued in the system. + */ + v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, +} + +/** + * The total units issued in the system. + */ +export interface TotalIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const inactiveIssuance = { + /** + * The total units of outstanding deactivated balance in the system. + */ + v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, +} + +/** + * The total units of outstanding deactivated balance in the system. + */ +export interface InactiveIssuanceV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const account = { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ + v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, +} + +/** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + */ +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountData + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> +} + +export const locks = { + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ + v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, +} + +/** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + */ +export interface LocksV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BalanceLock[] + get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> +} + +export const reserves = { + /** + * Named reserves on some account balances. + */ + v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, +} + +/** + * Named reserves on some account balances. + */ +export interface ReservesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.ReserveData[] + get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> +} + +export const holds = { + /** + * Holds on account balances. + */ + v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, + /** + * Holds on account balances. + */ + v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, + /** + * Holds on account balances. + */ + v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, +} + +/** + * Holds on account balances. + */ +export interface HoldsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.IdAmount[] + get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> +} + +/** + * Holds on account balances. + */ +export interface HoldsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.IdAmount[] + get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> + getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> +} + +/** + * Holds on account balances. + */ +export interface HoldsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.IdAmount[] + get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> + getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v3.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> +} + +export const freezes = { + /** + * Freeze locks on account balances. + */ + v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, +} + +/** + * Freeze locks on account balances. + */ +export interface FreezesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Type_152[] + get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> +} diff --git a/indexers/accounts-squid/src/types/calls.ts b/indexers/accounts-squid/src/types/calls.ts new file mode 100644 index 000000000..92374c8bf --- /dev/null +++ b/indexers/accounts-squid/src/types/calls.ts @@ -0,0 +1,5 @@ +export * as system from './system/calls' +export * as subspace from './subspace/calls' +export * as balances from './balances/calls' +export * as domains from './domains/calls' +export * as rewards from './rewards/calls' diff --git a/indexers/accounts-squid/src/types/constants.ts b/indexers/accounts-squid/src/types/constants.ts new file mode 100644 index 000000000..bac116dd0 --- /dev/null +++ b/indexers/accounts-squid/src/types/constants.ts @@ -0,0 +1,7 @@ +export * as system from './system/constants' +export * as subspace from './subspace/constants' +export * as rewards from './rewards/constants' +export * as balances from './balances/constants' +export * as transactionFees from './transaction-fees/constants' +export * as transactionPayment from './transaction-payment/constants' +export * as domains from './domains/constants' diff --git a/indexers/accounts-squid/src/types/domains/calls.ts b/indexers/accounts-squid/src/types/domains/calls.ts new file mode 100644 index 000000000..3ecf1398b --- /dev/null +++ b/indexers/accounts-squid/src/types/domains/calls.ts @@ -0,0 +1,278 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const submitBundle = { + name: 'Domains.submit_bundle', + /** + * See [`Pallet::submit_bundle`]. + */ + v0: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v0.Bundle, + }) + ), + /** + * See [`Pallet::submit_bundle`]. + */ + v1: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v1.Bundle, + }) + ), + v5: new CallType( + 'Domains.submit_bundle', + sts.struct({ + opaqueBundle: v5.Bundle, + }) + ), +} + +export const submitFraudProof = { + name: 'Domains.submit_fraud_proof', + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v0: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v0.FraudProof, + }) + ), + /** + * See [`Pallet::submit_fraud_proof`]. + */ + v1: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v1.FraudProof, + }) + ), + v5: new CallType( + 'Domains.submit_fraud_proof', + sts.struct({ + fraudProof: v5.FraudProof, + }) + ), +} + +export const registerDomainRuntime = { + name: 'Domains.register_domain_runtime', + /** + * See [`Pallet::register_domain_runtime`]. + */ + v0: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v0.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), + v5: new CallType( + 'Domains.register_domain_runtime', + sts.struct({ + runtimeName: sts.string(), + runtimeType: v5.RuntimeType, + rawGenesisStorage: sts.bytes(), + }) + ), +} + +export const upgradeDomainRuntime = { + name: 'Domains.upgrade_domain_runtime', + /** + * See [`Pallet::upgrade_domain_runtime`]. + */ + v0: new CallType( + 'Domains.upgrade_domain_runtime', + sts.struct({ + runtimeId: sts.number(), + rawGenesisStorage: sts.bytes(), + }) + ), +} + +export const registerOperator = { + name: 'Domains.register_operator', + /** + * See [`Pallet::register_operator`]. + */ + v0: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v0.DomainId, + amount: sts.bigint(), + config: v0.OperatorConfig, + }) + ), + v5: new CallType( + 'Domains.register_operator', + sts.struct({ + domainId: v5.DomainId, + amount: sts.bigint(), + config: v5.OperatorConfig, + signingKeyProofOfOwnership: sts.bytes(), + }) + ), +} + +export const nominateOperator = { + name: 'Domains.nominate_operator', + /** + * See [`Pallet::nominate_operator`]. + */ + v0: new CallType( + 'Domains.nominate_operator', + sts.struct({ + operatorId: sts.bigint(), + amount: sts.bigint(), + }) + ), +} + +export const instantiateDomain = { + name: 'Domains.instantiate_domain', + /** + * See [`Pallet::instantiate_domain`]. + */ + v0: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v0.DomainConfig, + }) + ), + /** + * See [`Pallet::instantiate_domain`]. + */ + v1: new CallType( + 'Domains.instantiate_domain', + sts.struct({ + domainConfig: v1.DomainConfig, + }) + ), +} + +export const switchDomain = { + name: 'Domains.switch_domain', + /** + * See [`Pallet::switch_domain`]. + */ + v0: new CallType( + 'Domains.switch_domain', + sts.struct({ + operatorId: sts.bigint(), + newDomainId: v0.DomainId, + }) + ), +} + +export const deregisterOperator = { + name: 'Domains.deregister_operator', + /** + * See [`Pallet::deregister_operator`]. + */ + v0: new CallType( + 'Domains.deregister_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrawStake = { + name: 'Domains.withdraw_stake', + /** + * See [`Pallet::withdraw_stake`]. + */ + v0: new CallType( + 'Domains.withdraw_stake', + sts.struct({ + operatorId: sts.bigint(), + shares: sts.bigint(), + }) + ), +} + +export const unlockFunds = { + name: 'Domains.unlock_funds', + /** + * See [`Pallet::unlock_funds`]. + */ + v0: new CallType( + 'Domains.unlock_funds', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const unlockOperator = { + name: 'Domains.unlock_operator', + /** + * See [`Pallet::unlock_operator`]. + */ + v0: new CallType( + 'Domains.unlock_operator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const updateDomainOperatorAllowList = { + name: 'Domains.update_domain_operator_allow_list', + /** + * See [`Pallet::update_domain_operator_allow_list`]. + */ + v0: new CallType( + 'Domains.update_domain_operator_allow_list', + sts.struct({ + domainId: v0.DomainId, + operatorAllowList: v0.OperatorAllowList, + }) + ), +} + +export const forceStakingEpochTransition = { + name: 'Domains.force_staking_epoch_transition', + /** + * See [`Pallet::force_staking_epoch_transition`]. + */ + v0: new CallType( + 'Domains.force_staking_epoch_transition', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const unlockNominator = { + name: 'Domains.unlock_nominator', + /** + * Unlocks the nominator under given operator given the unlocking period is complete. + * A nominator can initiate their unlock given operator is already deregistered. + */ + v5: new CallType( + 'Domains.unlock_nominator', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const setPermissionedActionAllowedBy = { + name: 'Domains.set_permissioned_action_allowed_by', + /** + * Update permissioned action allowed by storage by Sudo. + */ + v5: new CallType( + 'Domains.set_permissioned_action_allowed_by', + sts.struct({ + permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, + }) + ), +} diff --git a/indexers/accounts-squid/src/types/domains/constants.ts b/indexers/accounts-squid/src/types/domains/constants.ts new file mode 100644 index 000000000..a26b47666 --- /dev/null +++ b/indexers/accounts-squid/src/types/domains/constants.ts @@ -0,0 +1,213 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' + +export const confirmationDepthK = { + /** + * Same with `pallet_subspace::Config::ConfirmationDepthK`. + */ + v0: new ConstantType( + 'Domains.ConfirmationDepthK', + sts.number() + ), +} + +export const domainRuntimeUpgradeDelay = { + /** + * Delay before a domain runtime is upgraded. + */ + v0: new ConstantType( + 'Domains.DomainRuntimeUpgradeDelay', + sts.number() + ), +} + +export const blockTreePruningDepth = { + /** + * The block tree pruning depth. + */ + v0: new ConstantType( + 'Domains.BlockTreePruningDepth', + sts.number() + ), +} + +export const maxDomainBlockSize = { + /** + * The maximum block size limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockSize', + sts.number() + ), +} + +export const maxDomainBlockWeight = { + /** + * The maximum block weight limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainBlockWeight', + v0.Weight + ), +} + +export const maxBundlesPerBlock = { + /** + * The maximum bundle per block limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxBundlesPerBlock', + sts.number() + ), +} + +export const maxDomainNameLength = { + /** + * The maximum domain name length limit for all domain. + */ + v0: new ConstantType( + 'Domains.MaxDomainNameLength', + sts.number() + ), +} + +export const domainInstantiationDeposit = { + /** + * The amount of fund to be locked up for the domain instance creator. + */ + v0: new ConstantType( + 'Domains.DomainInstantiationDeposit', + sts.bigint() + ), +} + +export const initialDomainTxRange = { + /** + * Initial domain tx range value. + */ + v0: new ConstantType( + 'Domains.InitialDomainTxRange', + sts.bigint() + ), +} + +export const domainTxRangeAdjustmentInterval = { + /** + * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. + */ + v0: new ConstantType( + 'Domains.DomainTxRangeAdjustmentInterval', + sts.bigint() + ), +} + +export const minOperatorStake = { + /** + * Minimum operator stake required to become operator of a domain. + */ + v0: new ConstantType( + 'Domains.MinOperatorStake', + sts.bigint() + ), +} + +export const minNominatorStake = { + /** + * Minimum nominator stake required to nominate and operator. + */ + v0: new ConstantType( + 'Domains.MinNominatorStake', + sts.bigint() + ), +} + +export const stakeWithdrawalLockingPeriod = { + /** + * Minimum number of blocks after which any finalized withdrawals are released to nominators. + */ + v0: new ConstantType( + 'Domains.StakeWithdrawalLockingPeriod', + sts.number() + ), +} + +export const stakeEpochDuration = { + /** + * Domain epoch transition interval + */ + v0: new ConstantType( + 'Domains.StakeEpochDuration', + sts.number() + ), +} + +export const treasuryAccount = { + /** + * Treasury account. + */ + v0: new ConstantType( + 'Domains.TreasuryAccount', + v0.AccountId32 + ), +} + +export const maxPendingStakingOperation = { + /** + * The maximum number of pending staking operation that can perform upon epoch transition. + */ + v0: new ConstantType( + 'Domains.MaxPendingStakingOperation', + sts.number() + ), +} + +export const maxNominators = { + /** + * The maximum number of nominators for given operator. + */ + v0: new ConstantType( + 'Domains.MaxNominators', + sts.number() + ), +} + +export const sudoId = { + /** + * The sudo account id + */ + v0: new ConstantType( + 'Domains.SudoId', + v0.AccountId32 + ), +} + +export const palletId = { + /** + * The pallet-domains's pallet id. + */ + v1: new ConstantType( + 'Domains.PalletId', + v1.PalletId + ), +} + +export const consensusSlotProbability = { + /** + * Consensus chain slot probability. + */ + v3: new ConstantType( + 'Domains.ConsensusSlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const bundleLongevity = { + /** + * How many block a bundle should still consider as valid after produced + */ + v3: new ConstantType( + 'Domains.BundleLongevity', + sts.number() + ), +} diff --git a/indexers/accounts-squid/src/types/domains/events.ts b/indexers/accounts-squid/src/types/domains/events.ts new file mode 100644 index 000000000..d6551e7d0 --- /dev/null +++ b/indexers/accounts-squid/src/types/domains/events.ts @@ -0,0 +1,250 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const bundleStored = { + name: 'Domains.BundleStored', + /** + * A domain bundle was included. + */ + v0: new EventType( + 'Domains.BundleStored', + sts.struct({ + domainId: v0.DomainId, + bundleHash: v0.H256, + bundleAuthor: sts.bigint(), + }) + ), +} + +export const domainRuntimeCreated = { + name: 'Domains.DomainRuntimeCreated', + v0: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v0.RuntimeType, + }) + ), + v5: new EventType( + 'Domains.DomainRuntimeCreated', + sts.struct({ + runtimeId: sts.number(), + runtimeType: v5.RuntimeType, + }) + ), +} + +export const domainRuntimeUpgradeScheduled = { + name: 'Domains.DomainRuntimeUpgradeScheduled', + v0: new EventType( + 'Domains.DomainRuntimeUpgradeScheduled', + sts.struct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }) + ), +} + +export const domainRuntimeUpgraded = { + name: 'Domains.DomainRuntimeUpgraded', + v0: new EventType( + 'Domains.DomainRuntimeUpgraded', + sts.struct({ + runtimeId: sts.number(), + }) + ), +} + +export const operatorRegistered = { + name: 'Domains.OperatorRegistered', + v0: new EventType( + 'Domains.OperatorRegistered', + sts.struct({ + operatorId: sts.bigint(), + domainId: v0.DomainId, + }) + ), +} + +export const operatorNominated = { + name: 'Domains.OperatorNominated', + v0: new EventType( + 'Domains.OperatorNominated', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const domainInstantiated = { + name: 'Domains.DomainInstantiated', + v0: new EventType( + 'Domains.DomainInstantiated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSwitchedDomain = { + name: 'Domains.OperatorSwitchedDomain', + v0: new EventType( + 'Domains.OperatorSwitchedDomain', + sts.struct({ + oldDomainId: v0.DomainId, + newDomainId: v0.DomainId, + }) + ), +} + +export const operatorDeregistered = { + name: 'Domains.OperatorDeregistered', + v0: new EventType( + 'Domains.OperatorDeregistered', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const operatorUnlocked = { + name: 'Domains.OperatorUnlocked', + v0: new EventType( + 'Domains.OperatorUnlocked', + sts.struct({ + operatorId: sts.bigint(), + }) + ), +} + +export const withdrewStake = { + name: 'Domains.WithdrewStake', + v0: new EventType( + 'Domains.WithdrewStake', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const fundsUnlocked = { + name: 'Domains.FundsUnlocked', + v0: new EventType( + 'Domains.FundsUnlocked', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + amount: sts.bigint(), + }) + ), +} + +export const preferredOperator = { + name: 'Domains.PreferredOperator', + v0: new EventType( + 'Domains.PreferredOperator', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v0.AccountId32, + }) + ), +} + +export const operatorRewarded = { + name: 'Domains.OperatorRewarded', + v0: new EventType( + 'Domains.OperatorRewarded', + sts.struct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }) + ), +} + +export const operatorTaxCollected = { + name: 'Domains.OperatorTaxCollected', + v0: new EventType( + 'Domains.OperatorTaxCollected', + sts.struct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }) + ), +} + +export const domainEpochCompleted = { + name: 'Domains.DomainEpochCompleted', + v0: new EventType( + 'Domains.DomainEpochCompleted', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const forceDomainEpochTransition = { + name: 'Domains.ForceDomainEpochTransition', + v0: new EventType( + 'Domains.ForceDomainEpochTransition', + sts.struct({ + domainId: v0.DomainId, + completedEpochIndex: sts.number(), + }) + ), +} + +export const fraudProofProcessed = { + name: 'Domains.FraudProofProcessed', + v0: new EventType( + 'Domains.FraudProofProcessed', + sts.struct({ + domainId: v0.DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }) + ), +} + +export const domainOperatorAllowListUpdated = { + name: 'Domains.DomainOperatorAllowListUpdated', + v0: new EventType( + 'Domains.DomainOperatorAllowListUpdated', + sts.struct({ + domainId: v0.DomainId, + }) + ), +} + +export const operatorSlashed = { + name: 'Domains.OperatorSlashed', + v0: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v0.SlashedReason, + }) + ), + v5: new EventType( + 'Domains.OperatorSlashed', + sts.struct({ + operatorId: sts.bigint(), + reason: v5.SlashedReason, + }) + ), +} + +export const storageFeeDeposited = { + name: 'Domains.StorageFeeDeposited', + v1: new EventType( + 'Domains.StorageFeeDeposited', + sts.struct({ + operatorId: sts.bigint(), + nominatorId: v1.AccountId32, + amount: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/domains/storage.ts b/indexers/accounts-squid/src/types/domains/storage.ts new file mode 100644 index 000000000..495ae0e03 --- /dev/null +++ b/indexers/accounts-squid/src/types/domains/storage.ts @@ -0,0 +1,1226 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v3 from '../v3' +import * as v5 from '../v5' + +export const successfulBundles = { + /** + * Bundles submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, +} + +/** + * Bundles submitted successfully in current block. + */ +export interface SuccessfulBundlesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const successfulFraudProofs = { + /** + * Fraud proofs submitted successfully in current block. + */ + v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, +} + +/** + * Fraud proofs submitted successfully in current block. + */ +export interface SuccessfulFraudProofsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256[] + get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> +} + +export const nextRuntimeId = { + /** + * Stores the next runtime id. + */ + v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, +} + +/** + * Stores the next runtime id. + */ +export interface NextRuntimeIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const nextEvmChainId = { + /** + * Stores the next evm chain id. + */ + v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, +} + +/** + * Stores the next evm chain id. + */ +export interface NextEvmChainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const runtimeRegistry = { + v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, + v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, +} + +export interface RuntimeRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> +} + +export interface RuntimeRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> + getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> +} + +export const scheduledRuntimeUpgrades = { + v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, +} + +export interface ScheduledRuntimeUpgradesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> + getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> + getKeys(block: Block): Promise<[number, number][]> + getKeys(block: Block, key1: number): Promise<[number, number][]> + getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> + getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> +} + +export const nextOperatorId = { + v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, +} + +export interface NextOperatorIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const operatorIdOwner = { + v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, +} + +export interface OperatorIdOwnerV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> +} + +export const operatorSigningKey = { + /** + * Indexes operator signing key against OperatorId. + */ + v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, +} + +/** + * Indexes operator signing key against OperatorId. + */ +export interface OperatorSigningKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: Bytes): Promise<(bigint | undefined)> + getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: Bytes): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable + getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> +} + +export const domainStakingSummary = { + v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, +} + +export interface DomainStakingSummaryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> +} + +export const operators = { + /** + * List of all registered operators and their configuration. + */ + v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, + /** + * List of all registered operators and their configuration. + */ + v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, + /** + * List of all registered operators and their configuration. + */ + v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> +} + +/** + * List of all registered operators and their configuration. + */ +export interface OperatorsV3 { + is(block: RuntimeCtx): boolean + get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> +} + +export const pendingOperatorSwitches = { + /** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ + v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, +} + +/** + * Temporary hold of all the operators who decided to switch to another domain. + * Once epoch is complete, these operators are added to new domains under next_operators. + */ +export interface PendingOperatorSwitchesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const operatorEpochSharePrice = { + /** + * Share price for the operator pool at the end of Domain epoch. + */ + v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, +} + +/** + * Share price for the operator pool at the end of Domain epoch. + */ +export interface OperatorEpochSharePriceV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> + getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> + getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> + getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> +} + +export const deposits = { + /** + * List of all deposits for given Operator. + */ + v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, + /** + * List of all deposits for given Operator. + */ + v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, +} + +/** + * List of all deposits for given Operator. + */ +export interface DepositsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> +} + +/** + * List of all deposits for given Operator. + */ +export interface DepositsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> +} + +export const withdrawals = { + /** + * List of all withdrawals for a given operator. + */ + v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, + /** + * List of all withdrawals for a given operator. + */ + v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, +} + +/** + * List of all withdrawals for a given operator. + */ +export interface WithdrawalsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> +} + +/** + * List of all withdrawals for a given operator. + */ +export interface WithdrawalsV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> + getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> + getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> + getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> + getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> + getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> +} + +export const nominatorCount = { + /** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ + v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, +} + +/** + * Tracks the nominator count under given operator. + * This storage is necessary since CountedStorageNMap does not support prefix key count, so + * cannot use that storage type for `Nominators` storage. + * Note: The count is incremented for new nominators and decremented when the nominator withdraws + * all the stake. + * Since Operator themselves are first nominator, they are not counted. + */ +export interface NominatorCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: bigint): Promise<(number | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> +} + +export const pendingSlashes = { + /** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ + v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, +} + +/** + * A list operators who were slashed during the current epoch associated with the domain. + * When the epoch for a given domain is complete, operator total stake is moved to treasury and + * then deleted. + */ +export interface PendingSlashesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> +} + +export const pendingStakingOperationCount = { + /** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ + v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, +} + +/** + * The pending staking operation count of the current epoch, it should not larger than + * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. + */ +export interface PendingStakingOperationCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const nextDomainId = { + /** + * Stores the next domain id. + */ + v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, +} + +/** + * Stores the next domain id. + */ +export interface NextDomainIdV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.DomainId + get(block: Block): Promise<(v0.DomainId | undefined)> +} + +export const domainRegistry = { + /** + * The domain registry + */ + v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, + /** + * The domain registry + */ + v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, + /** + * The domain registry + */ + v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, +} + +/** + * The domain registry + */ +export interface DomainRegistryV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> +} + +/** + * The domain registry + */ +export interface DomainRegistryV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> +} + +/** + * The domain registry + */ +export interface DomainRegistryV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> + getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> +} + +export const blockTree = { + /** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ + v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, +} + +/** + * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, + * which can be used get the block tree node in `BlockTreeNodes` + */ +export interface BlockTreeV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const blockTreeNodes = { + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, + /** + * Mapping of block tree node hash to the node, each node represent a domain block + */ + v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> + getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> +} + +/** + * Mapping of block tree node hash to the node, each node represent a domain block + */ +export interface BlockTreeNodesV5 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> + getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v5.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> +} + +export const headReceiptNumber = { + /** + * The head receipt number of each domain + */ + v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, +} + +/** + * The head receipt number of each domain + */ +export interface HeadReceiptNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const latestConfirmedDomainBlockNumber = { + /** + * The latest confirmed block number of each domain. + */ + v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, +} + +/** + * The latest confirmed block number of each domain. + */ +export interface LatestConfirmedDomainBlockNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const headReceiptExtended = { + /** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ + v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, +} + +/** + * Whether the head receipt have extended in the current consensus block + * + * Temporary storage only exist during block execution + */ +export interface HeadReceiptExtendedV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> +} + +export const stateRoots = { + /** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ + v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, +} + +/** + * State root mapped again each domain (block, hash) + * This acts as an index for other protocols like XDM to fetch state roots faster. + */ +export interface StateRootsV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> + getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> +} + +export const consensusBlockHash = { + /** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ + v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, +} + +/** + * The consensus block hash used to verify ER, + * only store the consensus block hash for a domain + * if that consensus block contains bundle of the domain, the hash will be pruned when the ER + * that point to the consensus block is pruned. + * + * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 + * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. + */ +export interface ConsensusBlockHashV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> +} + +export const executionInbox = { + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, + /** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ + v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, +} + +/** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ +export interface ExecutionInboxV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BundleDigest[] + get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> + getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> +} + +/** + * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, + * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: + * + * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles + * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned + */ +export interface ExecutionInboxV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.BundleDigest[] + get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> + getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> + getKeys(block: Block): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> + getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> + getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> + getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> +} + +export const inboxedBundleAuthor = { + /** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ + v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, +} + +/** + * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of + * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and + * slash malicious operator who have submitted invalid bundle. + */ +export interface InboxedBundleAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.H256): Promise<(bigint | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> +} + +export const headDomainNumber = { + /** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ + v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, +} + +/** + * The block number of the best domain block, increase by one when the first bundle of the domain is + * successfully submitted to current consensus block, which mean a new domain block with this block + * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building + * domain block, also used as a mapping of consensus block number to domain block number. + */ +export interface HeadDomainNumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: v0.DomainId): Promise<(number | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> +} + +export const lastEpochStakingDistribution = { + /** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ + v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, +} + +/** + * A temporary storage to hold any previous epoch details for a given domain + * if the epoch transitioned in this block so that all the submitted bundles + * within this block are verified. + * TODO: The storage is cleared on block finalization that means this storage is already cleared when + * verifying the `submit_bundle` extrinsic and not used at all + */ +export interface LastEpochStakingDistributionV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> +} + +export const domainTxRangeState = { + v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, +} + +export interface DomainTxRangeStateV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> + getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> +} + +export const latestConfirmedDomainBlock = { + /** + * Storage to hold all the domain's latest confirmed block. + */ + v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, +} + +/** + * Storage to hold all the domain's latest confirmed block. + */ +export interface LatestConfirmedDomainBlockV1 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> + getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v1.DomainId): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable + getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> +} + +export const latestSubmittedEr = { + /** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ + v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, +} + +/** + * The latest ER submitted by the operator for a given domain. It is used to determine if the operator + * has submitted bad ER and is pending to slash. + * + * The storage item of a given `(domain_id, operator_id)` will be pruned after either: + * - All the ERs submitted by the operator for this domain are confirmed and pruned + * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed + */ +export interface LatestSubmittedErV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> + getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> + getKeys(block: Block): Promise<[v3.DomainId, bigint][]> + getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> + getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> + getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> +} + +export const operatorHighestSlot = { + /** + * The highest slot of the bundle submitted by an operator + */ + v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, +} + +/** + * The highest slot of the bundle submitted by an operator + */ +export interface OperatorHighestSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block, key: bigint): Promise<(bigint | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> +} + +export const operatorBundleSlot = { + /** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ + v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, +} + +/** + * The set of slot of the bundle submitted by an operator in the current block, cleared at the + * next block initialization + */ +export interface OperatorBundleSlotV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint[] + get(block: Block, key: bigint): Promise<(bigint[] | undefined)> + getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: bigint): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable + getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> +} + +export const permissionedActionAllowedBy = { + /** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ + v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, +} + +/** + * Storage for PermissionedActions for domain instantiation and other permissioned calls. + */ +export interface PermissionedActionAllowedByV5 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> +} + +export const accumulatedTreasuryFunds = { + /** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ + v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, +} + +/** + * Accumulate treasury funds temporarily until the funds are above Existential despoit. + * We do this to ensure minting small amounts into treasury would not fail. + */ +export interface AccumulatedTreasuryFundsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const domainRuntimeUpgradeRecords = { + /** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ + v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, +} + +/** + * Storage used to keep track of which consensus block the domain runtime upgrade happen. + */ +export interface DomainRuntimeUpgradeRecordsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] + get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> + getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> +} + +export const domainRuntimeUpgrades = { + /** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ + v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, +} + +/** + * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared + * in the next block initialization. + */ +export interface DomainRuntimeUpgradesV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number[] + get(block: Block): Promise<(number[] | undefined)> +} diff --git a/indexers/accounts-squid/src/types/events.ts b/indexers/accounts-squid/src/types/events.ts new file mode 100644 index 000000000..9ec91fd9b --- /dev/null +++ b/indexers/accounts-squid/src/types/events.ts @@ -0,0 +1,7 @@ +export * as system from './system/events' +export * as subspace from './subspace/events' +export * as rewards from './rewards/events' +export * as balances from './balances/events' +export * as transactionFees from './transaction-fees/events' +export * as transactionPayment from './transaction-payment/events' +export * as domains from './domains/events' diff --git a/indexers/accounts-squid/src/types/index.ts b/indexers/accounts-squid/src/types/index.ts new file mode 100644 index 000000000..a9093352d --- /dev/null +++ b/indexers/accounts-squid/src/types/index.ts @@ -0,0 +1,8 @@ +export * as v0 from './v0' +export * as v5 from './v5' +export * as v1 from './v1' +export * as v3 from './v3' +export * as events from './events' +export * as calls from './calls' +export * as constants from './constants' +export * as storage from './storage' diff --git a/indexers/accounts-squid/src/types/rewards/calls.ts b/indexers/accounts-squid/src/types/rewards/calls.ts new file mode 100644 index 000000000..b8486afff --- /dev/null +++ b/indexers/accounts-squid/src/types/rewards/calls.ts @@ -0,0 +1,16 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v3 from '../v3' + +export const updateIssuanceParams = { + name: 'Rewards.update_issuance_params', + /** + * See [`Pallet::update_issuance_params`]. + */ + v3: new CallType( + 'Rewards.update_issuance_params', + sts.struct({ + proposerSubsidyPoints: sts.array(() => v3.RewardPoint), + voterSubsidyPoints: sts.array(() => v3.RewardPoint), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/rewards/constants.ts b/indexers/accounts-squid/src/types/rewards/constants.ts new file mode 100644 index 000000000..e1004ecc1 --- /dev/null +++ b/indexers/accounts-squid/src/types/rewards/constants.ts @@ -0,0 +1,61 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const blockReward = { + /** + * Fixed reward for block producer. + */ + v0: new ConstantType( + 'Rewards.BlockReward', + sts.bigint() + ), +} + +export const voteReward = { + /** + * Fixed reward for voter. + */ + v0: new ConstantType( + 'Rewards.VoteReward', + sts.bigint() + ), +} + +export const avgBlockspaceUsageNumBlocks = { + /** + * Number of blocks over which to compute average blockspace usage + */ + v3: new ConstantType( + 'Rewards.AvgBlockspaceUsageNumBlocks', + sts.number() + ), +} + +export const transactionByteFee = { + /** + * Cost of one byte of blockspace + */ + v3: new ConstantType( + 'Rewards.TransactionByteFee', + sts.bigint() + ), +} + +export const maxRewardPoints = { + /** + * Max number of reward points + */ + v3: new ConstantType( + 'Rewards.MaxRewardPoints', + sts.number() + ), +} + +export const proposerTaxOnVotes = { + /** + * Tax of the proposer on vote rewards + */ + v3: new ConstantType( + 'Rewards.ProposerTaxOnVotes', + sts.tuple(() => [sts.number(), sts.number()]) + ), +} diff --git a/indexers/accounts-squid/src/types/rewards/events.ts b/indexers/accounts-squid/src/types/rewards/events.ts new file mode 100644 index 000000000..5b01a1694 --- /dev/null +++ b/indexers/accounts-squid/src/types/rewards/events.ts @@ -0,0 +1,30 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockReward = { + name: 'Rewards.BlockReward', + /** + * Issued reward for the block author. + */ + v0: new EventType( + 'Rewards.BlockReward', + sts.struct({ + blockAuthor: v0.AccountId32, + reward: sts.bigint(), + }) + ), +} + +export const voteReward = { + name: 'Rewards.VoteReward', + /** + * Issued reward for the voter. + */ + v0: new EventType( + 'Rewards.VoteReward', + sts.struct({ + voter: v0.AccountId32, + reward: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/rewards/storage.ts b/indexers/accounts-squid/src/types/rewards/storage.ts new file mode 100644 index 000000000..971093421 --- /dev/null +++ b/indexers/accounts-squid/src/types/rewards/storage.ts @@ -0,0 +1,82 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v3 from '../v3' + +export const avgBlockspaceUsage = { + /** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ + v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, +} + +/** + * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance + */ +export interface AvgBlockspaceUsageV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const rewardsEnabled = { + /** + * Whether rewards are enabled + */ + v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, +} + +/** + * Whether rewards are enabled + */ +export interface RewardsEnabledV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const remainingIssuance = { + /** + * Tokens left to issue to farmers at any given time + */ + v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, +} + +/** + * Tokens left to issue to farmers at any given time + */ +export interface RemainingIssuanceV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): bigint + get(block: Block): Promise<(bigint | undefined)> +} + +export const proposerSubsidyPoints = { + /** + * Block proposer subsidy parameters + */ + v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, +} + +/** + * Block proposer subsidy parameters + */ +export interface ProposerSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +} + +export const voterSubsidyPoints = { + /** + * Voter subsidy parameters + */ + v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, +} + +/** + * Voter subsidy parameters + */ +export interface VoterSubsidyPointsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v3.RewardPoint[] + get(block: Block): Promise<(v3.RewardPoint[] | undefined)> +} diff --git a/indexers/accounts-squid/src/types/storage.ts b/indexers/accounts-squid/src/types/storage.ts new file mode 100644 index 000000000..f9f60a12b --- /dev/null +++ b/indexers/accounts-squid/src/types/storage.ts @@ -0,0 +1,7 @@ +export * as system from './system/storage' +export * as subspace from './subspace/storage' +export * as balances from './balances/storage' +export * as transactionFees from './transaction-fees/storage' +export * as transactionPayment from './transaction-payment/storage' +export * as domains from './domains/storage' +export * as rewards from './rewards/storage' diff --git a/indexers/accounts-squid/src/types/subspace/calls.ts b/indexers/accounts-squid/src/types/subspace/calls.ts new file mode 100644 index 000000000..add70afae --- /dev/null +++ b/indexers/accounts-squid/src/types/subspace/calls.ts @@ -0,0 +1,79 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const reportEquivocation = { + name: 'Subspace.report_equivocation', + /** + * See [`Pallet::report_equivocation`]. + */ + v0: new CallType( + 'Subspace.report_equivocation', + sts.struct({ + equivocationProof: v0.EquivocationProof, + }) + ), +} + +export const storeSegmentHeaders = { + name: 'Subspace.store_segment_headers', + /** + * See [`Pallet::store_segment_headers`]. + */ + v0: new CallType( + 'Subspace.store_segment_headers', + sts.struct({ + segmentHeaders: sts.array(() => v0.SegmentHeader), + }) + ), +} + +export const enableSolutionRangeAdjustment = { + name: 'Subspace.enable_solution_range_adjustment', + /** + * See [`Pallet::enable_solution_range_adjustment`]. + */ + v0: new CallType( + 'Subspace.enable_solution_range_adjustment', + sts.struct({ + solutionRangeOverride: sts.option(() => sts.bigint()), + votingSolutionRangeOverride: sts.option(() => sts.bigint()), + }) + ), +} + +export const vote = { + name: 'Subspace.vote', + /** + * See [`Pallet::vote`]. + */ + v0: new CallType( + 'Subspace.vote', + sts.struct({ + signedVote: v0.SignedVote, + }) + ), +} + +export const enableRewardsAt = { + name: 'Subspace.enable_rewards_at', + /** + * See [`Pallet::enable_rewards_at`]. + */ + v0: new CallType( + 'Subspace.enable_rewards_at', + sts.struct({ + enableRewardsAt: v0.EnableRewardsAt, + }) + ), +} + +export const enableAuthoringByAnyone = { + name: 'Subspace.enable_authoring_by_anyone', + /** + * See [`Pallet::enable_authoring_by_anyone`]. + */ + v0: new CallType( + 'Subspace.enable_authoring_by_anyone', + sts.unit() + ), +} diff --git a/indexers/accounts-squid/src/types/subspace/constants.ts b/indexers/accounts-squid/src/types/subspace/constants.ts new file mode 100644 index 000000000..555317b21 --- /dev/null +++ b/indexers/accounts-squid/src/types/subspace/constants.ts @@ -0,0 +1,154 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockAuthoringDelay = { + /** + * Number of slots between slot arrival and when corresponding block can be produced. + * + * Practically this means future proof of time proof needs to be revealed this many slots + * ahead before block can be authored even though solution is available before that. + */ + v0: new ConstantType( + 'Subspace.BlockAuthoringDelay', + v0.Slot + ), +} + +export const potEntropyInjectionInterval = { + /** + * Interval, in blocks, between blockchain entropy injection into proof of time chain. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionInterval', + sts.number() + ), +} + +export const potEntropyInjectionLookbackDepth = { + /** + * Interval, in entropy injection intervals, where to take entropy for injection from. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionLookbackDepth', + sts.number() + ), +} + +export const potEntropyInjectionDelay = { + /** + * Delay after block, in slots, when entropy injection takes effect. + */ + v0: new ConstantType( + 'Subspace.PotEntropyInjectionDelay', + v0.Slot + ), +} + +export const eraDuration = { + /** + * The amount of time, in blocks, that each era should last. + * NOTE: Currently it is not possible to change the era duration after + * the chain has started. Attempting to do so will brick block production. + */ + v0: new ConstantType( + 'Subspace.EraDuration', + sts.number() + ), +} + +export const initialSolutionRange = { + /** + * Initial solution range used for challenges during the very first era. + */ + v0: new ConstantType( + 'Subspace.InitialSolutionRange', + sts.bigint() + ), +} + +export const slotProbability = { + /** + * How often in slots slots (on average, not counting collisions) will have a block. + * + * Expressed as a rational where the first member of the tuple is the + * numerator and the second is the denominator. The rational should + * represent a value between 0 and 1. + */ + v0: new ConstantType( + 'Subspace.SlotProbability', + sts.tuple(() => [sts.bigint(), sts.bigint()]) + ), +} + +export const confirmationDepthK = { + /** + * Depth `K` after which a block enters the recorded history (a global constant, as opposed + * to the client-dependent transaction confirmation depth `k`). + */ + v0: new ConstantType( + 'Subspace.ConfirmationDepthK', + sts.number() + ), +} + +export const recentSegments = { + /** + * Number of latest archived segments that are considered "recent history". + */ + v0: new ConstantType( + 'Subspace.RecentSegments', + v0.HistorySize + ), +} + +export const recentHistoryFraction = { + /** + * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. + */ + v0: new ConstantType( + 'Subspace.RecentHistoryFraction', + sts.tuple(() => [v0.HistorySize, v0.HistorySize]) + ), +} + +export const minSectorLifetime = { + /** + * Minimum lifetime of a plotted sector, measured in archived segment. + */ + v0: new ConstantType( + 'Subspace.MinSectorLifetime', + v0.HistorySize + ), +} + +export const expectedVotesPerBlock = { + /** + * Number of votes expected per block. + * + * This impacts solution range for votes in consensus. + */ + v0: new ConstantType( + 'Subspace.ExpectedVotesPerBlock', + sts.number() + ), +} + +export const maxPiecesInSector = { + /** + * How many pieces one sector is supposed to contain (max) + */ + v0: new ConstantType( + 'Subspace.MaxPiecesInSector', + sts.number() + ), +} + +export const blockSlotCount = { + /** + * Maximum number of block number to block slot mappings to keep (oldest pruned first). + */ + v3: new ConstantType( + 'Subspace.BlockSlotCount', + sts.number() + ), +} diff --git a/indexers/accounts-squid/src/types/subspace/events.ts b/indexers/accounts-squid/src/types/subspace/events.ts new file mode 100644 index 000000000..65427a471 --- /dev/null +++ b/indexers/accounts-squid/src/types/subspace/events.ts @@ -0,0 +1,31 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const segmentHeaderStored = { + name: 'Subspace.SegmentHeaderStored', + /** + * Segment header was stored in blockchain history. + */ + v0: new EventType( + 'Subspace.SegmentHeaderStored', + sts.struct({ + segmentHeader: v0.SegmentHeader, + }) + ), +} + +export const farmerVote = { + name: 'Subspace.FarmerVote', + /** + * Farmer vote. + */ + v0: new EventType( + 'Subspace.FarmerVote', + sts.struct({ + publicKey: v0.Public, + rewardAddress: v0.AccountId32, + height: sts.number(), + parentHash: v0.H256, + }) + ), +} diff --git a/indexers/accounts-squid/src/types/subspace/storage.ts b/indexers/accounts-squid/src/types/subspace/storage.ts new file mode 100644 index 000000000..8c1220cc5 --- /dev/null +++ b/indexers/accounts-squid/src/types/subspace/storage.ts @@ -0,0 +1,390 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v3 from '../v3' + +export const genesisSlot = { + /** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ + v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, +} + +/** + * The slot at which the first block was created. This is 0 until the first block of the chain. + */ +export interface GenesisSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const currentSlot = { + /** + * Current slot number. + */ + v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, +} + +/** + * Current slot number. + */ +export interface CurrentSlotV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Slot + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const potSlotIterations = { + /** + * Number of iterations for proof of time per slot + */ + v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, +} + +/** + * Number of iterations for proof of time per slot + */ +export interface PotSlotIterationsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.NonZeroU32 | undefined)> +} + +export const solutionRanges = { + /** + * Solution ranges used for challenges. + */ + v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, +} + +/** + * Solution ranges used for challenges. + */ +export interface SolutionRangesV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.SolutionRanges + get(block: Block): Promise<(v0.SolutionRanges | undefined)> +} + +export const shouldAdjustSolutionRange = { + /** + * Storage to check if the solution range is to be adjusted for next era + */ + v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, +} + +/** + * Storage to check if the solution range is to be adjusted for next era + */ +export interface ShouldAdjustSolutionRangeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const nextSolutionRangeOverride = { + /** + * Override solution range during next update + */ + v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, +} + +/** + * Override solution range during next update + */ +export interface NextSolutionRangeOverrideV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> +} + +export const eraStartSlot = { + /** + * Slot at which current era started. + */ + v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, +} + +/** + * Slot at which current era started. + */ +export interface EraStartSlotV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Slot | undefined)> +} + +export const blockList = { + /** + * A set of blocked farmers keyed by their public key. + */ + v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, +} + +/** + * A set of blocked farmers keyed by their public key. + */ +export interface BlockListV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.Public): Promise<(null | undefined)> + getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.Public): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable + getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> +} + +export const segmentCommitment = { + /** + * Mapping from segment index to corresponding segment commitment of contained records. + */ + v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, +} + +/** + * Mapping from segment index to corresponding segment commitment of contained records. + */ +export interface SegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> + getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.SegmentIndex): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable + getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> +} + +export const counterForSegmentCommitment = { + /** + * Counter for the related counted storage map + */ + v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, +} + +/** + * Counter for the related counted storage map + */ +export interface CounterForSegmentCommitmentV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const didProcessSegmentHeaders = { + /** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ + v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, +} + +/** + * Whether the segment headers inherent has been processed in this block (temporary value). + * + * This value is updated to `true` when processing `store_segment_headers` by a node. + * It is then cleared at the end of each block execution in the `on_finalize` hook. + */ +export interface DidProcessSegmentHeadersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const parentVoteVerificationData = { + /** + * Storage of previous vote verification data, updated on each block during finalization. + */ + v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, +} + +/** + * Storage of previous vote verification data, updated on each block during finalization. + */ +export interface ParentVoteVerificationDataV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.VoteVerificationData | undefined)> +} + +export const parentBlockAuthorInfo = { + /** + * Parent block author information. + */ + v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, +} + +/** + * Parent block author information. + */ +export interface ParentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> +} + +export const enableRewards = { + /** + * Enable rewards since specified block number. + */ + v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, +} + +/** + * Enable rewards since specified block number. + */ +export interface EnableRewardsV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const enableRewardsBelowSolutionRange = { + /** + * Enable rewards when solution range is below this threshold. + */ + v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, +} + +/** + * Enable rewards when solution range is below this threshold. + */ +export interface EnableRewardsBelowSolutionRangeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(bigint | undefined)> +} + +export const currentBlockAuthorInfo = { + /** + * Temporary value (cleared at block finalization) with block author information. + */ + v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, +} + +/** + * Temporary value (cleared at block finalization) with block author information. + */ +export interface CurrentBlockAuthorInfoV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> +} + +export const parentBlockVoters = { + /** + * Voters in the parent block (set at the end of the block with current values). + */ + v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, +} + +/** + * Voters in the parent block (set at the end of the block with current values). + */ +export interface ParentBlockVotersV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const currentBlockVoters = { + /** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ + v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, +} + +/** + * Temporary value (cleared at block finalization) with voters in the current block thus far. + */ +export interface CurrentBlockVotersV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> +} + +export const potEntropy = { + /** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ + v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, +} + +/** + * Entropy that needs to be injected into proof of time chain at specific slot associated with + * block number it came from. + */ +export interface PotEntropyV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v0.PotEntropyValue][] + get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> +} + +export const blockRandomness = { + /** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ + v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, +} + +/** + * The current block randomness, updated at block initialization. When the proof of time feature + * is enabled it derived from PoT otherwise PoR. + */ +export interface BlockRandomnessV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Randomness | undefined)> +} + +export const allowAuthoringByAnyone = { + /** + * Allow block authoring by anyone or just root. + */ + v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, +} + +/** + * Allow block authoring by anyone or just root. + */ +export interface AllowAuthoringByAnyoneV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const rootPlotPublicKey = { + /** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ + v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, +} + +/** + * Root plot public key. + * + * Set just once to make sure no one else can author blocks until allowed for anyone. + */ +export interface RootPlotPublicKeyV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Public | undefined)> +} + +export const blockSlots = { + /** + * Bounded mapping from block number to slot + */ + v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, +} + +/** + * Bounded mapping from block number to slot + */ +export interface BlockSlotsV3 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, v3.Slot][] + get(block: Block): Promise<([number, v3.Slot][] | undefined)> +} diff --git a/indexers/accounts-squid/src/types/support.ts b/indexers/accounts-squid/src/types/support.ts new file mode 100644 index 000000000..456dfc2fb --- /dev/null +++ b/indexers/accounts-squid/src/types/support.ts @@ -0,0 +1,142 @@ +import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' +import * as sts from '@subsquid/substrate-runtime/lib/sts' +import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' +import assert from 'assert' + + +export {sts, Bytes, BitSequence, Option, Result} + + +export interface RuntimeCtx { + _runtime: Runtime +} + + +export interface Block extends RuntimeCtx { + hash: Bytes + height: number +} + + +interface Event { + block: RuntimeCtx + name: QualifiedName + args: unknown +} + + +interface Call { + block: RuntimeCtx + name: QualifiedName + args: unknown +} + + +export class EventType { + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.events.checkType(this.name, this.type) + } + + is(event: Event): boolean { + return this.name == event.name && this.matches(event.block) + } + + decode(event: Event): sts.GetType { + assert(this.is(event)) + return event.block._runtime.decodeJsonEventRecordArguments(event) + } +} + + +export class CallType { + constructor(public readonly name: QualifiedName, private type: T) {} + + matches(block: RuntimeCtx): boolean { + return block._runtime.calls.checkType(this.name, this.type) + } + + is(call: Call): boolean { + return this.name == call.name && this.matches(call.block) + } + + decode(call: Call): sts.GetType { + assert(this.is(call)) + return call.block._runtime.decodeJsonCallRecordArguments(call) + } +} + + +export class ConstantType { + constructor(private name: QualifiedName, private type: T) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkConstantType(this.name, this.type) + } + + get(block: RuntimeCtx): sts.GetType { + assert(this.is(block)) + return block._runtime.getConstant(this.name) + } +} + + +export class StorageType { + constructor( + private name: QualifiedName, + private modifier: 'Required' | 'Optional' | 'Default', + private key: sts.Type[], + private value: sts.Type + ) {} + + is(block: RuntimeCtx): boolean { + return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) + } + + async get(block: Block, ...key: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorage(block.hash, this.name, ...key) + } + + async getAll(block: Block): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name) + } + + async getMany(block: Block, keys: any[]): Promise { + assert(this.is(block)) + return block._runtime.queryStorage(block.hash, this.name, keys) + } + + async getKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageKeys(block.hash, this.name, ...args) + } + + async getRawKeys(block: Block, ...args: any[]): Promise { + assert(this.is(block)) + return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) + } + + getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { + assert(this.is(block)) + return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) + } + + async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairs(block.hash, this.name, ...args) + } + + getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { + assert(this.is(block)) + return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) + } + + getDefault(block: Block): any { + assert(this.modifier == 'Default') + assert(this.is(block)) + return block._runtime.getStorageFallback(this.name) + } +} diff --git a/indexers/accounts-squid/src/types/system/calls.ts b/indexers/accounts-squid/src/types/system/calls.ts new file mode 100644 index 000000000..24f23464e --- /dev/null +++ b/indexers/accounts-squid/src/types/system/calls.ts @@ -0,0 +1,146 @@ +import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const remark = { + name: 'System.remark', + /** + * See [`Pallet::remark`]. + */ + v0: new CallType( + 'System.remark', + sts.struct({ + remark: sts.bytes(), + }) + ), +} + +export const setHeapPages = { + name: 'System.set_heap_pages', + /** + * See [`Pallet::set_heap_pages`]. + */ + v0: new CallType( + 'System.set_heap_pages', + sts.struct({ + pages: sts.bigint(), + }) + ), +} + +export const setCode = { + name: 'System.set_code', + /** + * See [`Pallet::set_code`]. + */ + v0: new CallType( + 'System.set_code', + sts.struct({ + code: sts.bytes(), + }) + ), +} + +export const setCodeWithoutChecks = { + name: 'System.set_code_without_checks', + /** + * See [`Pallet::set_code_without_checks`]. + */ + v0: new CallType( + 'System.set_code_without_checks', + sts.struct({ + code: sts.bytes(), + }) + ), +} + +export const setStorage = { + name: 'System.set_storage', + /** + * See [`Pallet::set_storage`]. + */ + v0: new CallType( + 'System.set_storage', + sts.struct({ + items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), + }) + ), +} + +export const killStorage = { + name: 'System.kill_storage', + /** + * See [`Pallet::kill_storage`]. + */ + v0: new CallType( + 'System.kill_storage', + sts.struct({ + keys: sts.array(() => sts.bytes()), + }) + ), +} + +export const killPrefix = { + name: 'System.kill_prefix', + /** + * See [`Pallet::kill_prefix`]. + */ + v0: new CallType( + 'System.kill_prefix', + sts.struct({ + prefix: sts.bytes(), + subkeys: sts.number(), + }) + ), +} + +export const remarkWithEvent = { + name: 'System.remark_with_event', + /** + * See [`Pallet::remark_with_event`]. + */ + v0: new CallType( + 'System.remark_with_event', + sts.struct({ + remark: sts.bytes(), + }) + ), +} + +export const authorizeUpgrade = { + name: 'System.authorize_upgrade', + /** + * See [`Pallet::authorize_upgrade`]. + */ + v0: new CallType( + 'System.authorize_upgrade', + sts.struct({ + codeHash: v0.H256, + }) + ), +} + +export const authorizeUpgradeWithoutChecks = { + name: 'System.authorize_upgrade_without_checks', + /** + * See [`Pallet::authorize_upgrade_without_checks`]. + */ + v0: new CallType( + 'System.authorize_upgrade_without_checks', + sts.struct({ + codeHash: v0.H256, + }) + ), +} + +export const applyAuthorizedUpgrade = { + name: 'System.apply_authorized_upgrade', + /** + * See [`Pallet::apply_authorized_upgrade`]. + */ + v0: new CallType( + 'System.apply_authorized_upgrade', + sts.struct({ + code: sts.bytes(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/system/constants.ts b/indexers/accounts-squid/src/types/system/constants.ts new file mode 100644 index 000000000..653ab1df2 --- /dev/null +++ b/indexers/accounts-squid/src/types/system/constants.ts @@ -0,0 +1,66 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockWeights = { + /** + * Block & extrinsics weights: base values and limits. + */ + v0: new ConstantType( + 'System.BlockWeights', + v0.BlockWeights + ), +} + +export const blockLength = { + /** + * The maximum length of a block (in bytes). + */ + v0: new ConstantType( + 'System.BlockLength', + v0.BlockLength + ), +} + +export const blockHashCount = { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + */ + v0: new ConstantType( + 'System.BlockHashCount', + sts.number() + ), +} + +export const dbWeight = { + /** + * The weight of runtime database operations the runtime can invoke. + */ + v0: new ConstantType( + 'System.DbWeight', + v0.RuntimeDbWeight + ), +} + +export const version = { + /** + * Get the chain's current version. + */ + v0: new ConstantType( + 'System.Version', + v0.RuntimeVersion + ), +} + +export const ss58Prefix = { + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + */ + v0: new ConstantType( + 'System.SS58Prefix', + sts.number() + ), +} diff --git a/indexers/accounts-squid/src/types/system/events.ts b/indexers/accounts-squid/src/types/system/events.ts new file mode 100644 index 000000000..2c8c5731b --- /dev/null +++ b/indexers/accounts-squid/src/types/system/events.ts @@ -0,0 +1,94 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const extrinsicSuccess = { + name: 'System.ExtrinsicSuccess', + /** + * An extrinsic completed successfully. + */ + v0: new EventType( + 'System.ExtrinsicSuccess', + sts.struct({ + dispatchInfo: v0.DispatchInfo, + }) + ), +} + +export const extrinsicFailed = { + name: 'System.ExtrinsicFailed', + /** + * An extrinsic failed. + */ + v0: new EventType( + 'System.ExtrinsicFailed', + sts.struct({ + dispatchError: v0.DispatchError, + dispatchInfo: v0.DispatchInfo, + }) + ), +} + +export const codeUpdated = { + name: 'System.CodeUpdated', + /** + * `:code` was updated. + */ + v0: new EventType( + 'System.CodeUpdated', + sts.unit() + ), +} + +export const newAccount = { + name: 'System.NewAccount', + /** + * A new account was created. + */ + v0: new EventType( + 'System.NewAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), +} + +export const killedAccount = { + name: 'System.KilledAccount', + /** + * An account was reaped. + */ + v0: new EventType( + 'System.KilledAccount', + sts.struct({ + account: v0.AccountId32, + }) + ), +} + +export const remarked = { + name: 'System.Remarked', + /** + * On on-chain remark happened. + */ + v0: new EventType( + 'System.Remarked', + sts.struct({ + sender: v0.AccountId32, + hash: v0.H256, + }) + ), +} + +export const upgradeAuthorized = { + name: 'System.UpgradeAuthorized', + /** + * An upgrade was authorized. + */ + v0: new EventType( + 'System.UpgradeAuthorized', + sts.struct({ + codeHash: v0.H256, + checkVersion: sts.boolean(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/system/storage.ts b/indexers/accounts-squid/src/types/system/storage.ts new file mode 100644 index 000000000..9f776b387 --- /dev/null +++ b/indexers/accounts-squid/src/types/system/storage.ts @@ -0,0 +1,405 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' +import * as v1 from '../v1' +import * as v5 from '../v5' + +export const account = { + /** + * The full account information for a particular account ID. + */ + v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, +} + +/** + * The full account information for a particular account ID. + */ +export interface AccountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.AccountInfo + get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> + getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.AccountId32): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable + getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> +} + +export const extrinsicCount = { + /** + * Total extrinsics count for the current block. + */ + v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, +} + +/** + * Total extrinsics count for the current block. + */ +export interface ExtrinsicCountV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const blockWeight = { + /** + * The current weight for the block. + */ + v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, +} + +/** + * The current weight for the block. + */ +export interface BlockWeightV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.PerDispatchClass + get(block: Block): Promise<(v0.PerDispatchClass | undefined)> +} + +export const allExtrinsicsLen = { + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ + v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, +} + +/** + * Total length (in bytes) for all extrinsics put together, for the current block. + */ +export interface AllExtrinsicsLenV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(number | undefined)> +} + +export const blockHash = { + /** + * Map of block numbers to block hashes. + */ + v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, +} + +/** + * Map of block numbers to block hashes. + */ +export interface BlockHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block, key: number): Promise<(v0.H256 | undefined)> + getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> +} + +export const extrinsicData = { + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ + v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, +} + +/** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + */ +export interface ExtrinsicDataV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): Bytes + get(block: Block, key: number): Promise<(Bytes | undefined)> + getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: number): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable + getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> + getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> +} + +export const number = { + /** + * The current block number being processed. Set by `execute_block`. + */ + v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, +} + +/** + * The current block number being processed. Set by `execute_block`. + */ +export interface NumberV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const parentHash = { + /** + * Hash of the previous block. + */ + v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, +} + +/** + * Hash of the previous block. + */ +export interface ParentHashV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.H256 + get(block: Block): Promise<(v0.H256 | undefined)> +} + +export const digest = { + /** + * Digest of the current block, also part of the block header. + */ + v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, +} + +/** + * Digest of the current block, also part of the block header. + */ +export interface DigestV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Digest + get(block: Block): Promise<(v0.Digest | undefined)> +} + +export const events = { + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ + v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.EventRecord[] + get(block: Block): Promise<(v0.EventRecord[] | undefined)> +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV1 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v1.EventRecord[] + get(block: Block): Promise<(v1.EventRecord[] | undefined)> +} + +/** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + */ +export interface EventsV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v5.EventRecord[] + get(block: Block): Promise<(v5.EventRecord[] | undefined)> +} + +export const eventCount = { + /** + * The number of events in the `Events` list. + */ + v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, +} + +/** + * The number of events in the `Events` list. + */ +export interface EventCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): number + get(block: Block): Promise<(number | undefined)> +} + +export const eventTopics = { + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ + v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, +} + +/** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + */ +export interface EventTopicsV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): [number, number][] + get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> + getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> + getKeys(block: Block): Promise + getKeys(block: Block, key: v0.H256): Promise + getKeysPaged(pageSize: number, block: Block): AsyncIterable + getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable + getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> + getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> +} + +export const lastRuntimeUpgrade = { + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ + v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, +} + +/** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + */ +export interface LastRuntimeUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> +} + +export const upgradedToU32RefCount = { + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ + v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, +} + +/** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + */ +export interface UpgradedToU32RefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const upgradedToTripleRefCount = { + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ + v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, +} + +/** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + */ +export interface UpgradedToTripleRefCountV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const executionPhase = { + /** + * The execution phase of the block. + */ + v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, +} + +/** + * The execution phase of the block. + */ +export interface ExecutionPhaseV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.Phase | undefined)> +} + +export const authorizedUpgrade = { + /** + * `Some` if a code upgrade has been authorized. + */ + v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, +} + +/** + * `Some` if a code upgrade has been authorized. + */ +export interface AuthorizedUpgradeV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> +} + +export const inherentsApplied = { + /** + * Whether all inherents have been applied. + */ + v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, +} + +/** + * Whether all inherents have been applied. + */ +export interface InherentsAppliedV5 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} diff --git a/indexers/accounts-squid/src/types/transaction-fees/constants.ts b/indexers/accounts-squid/src/types/transaction-fees/constants.ts new file mode 100644 index 000000000..60de86b39 --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-fees/constants.ts @@ -0,0 +1,43 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const minReplicationFactor = { + /** + * Minimum desired number of replicas of the blockchain to be stored by the network, + * impacts storage fees. + */ + v0: new ConstantType( + 'TransactionFees.MinReplicationFactor', + sts.number() + ), +} + +export const creditSupply = { + /** + * How many credits there is in circulation. + */ + v0: new ConstantType( + 'TransactionFees.CreditSupply', + sts.bigint() + ), +} + +export const totalSpacePledged = { + /** + * How much space there is on the network. + */ + v0: new ConstantType( + 'TransactionFees.TotalSpacePledged', + sts.bigint() + ), +} + +export const blockchainHistorySize = { + /** + * How big is the history of the blockchain in archived state (thus includes erasure + * coding, but not replication). + */ + v0: new ConstantType( + 'TransactionFees.BlockchainHistorySize', + sts.bigint() + ), +} diff --git a/indexers/accounts-squid/src/types/transaction-fees/events.ts b/indexers/accounts-squid/src/types/transaction-fees/events.ts new file mode 100644 index 000000000..4726ccd18 --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-fees/events.ts @@ -0,0 +1,54 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const blockFees = { + name: 'TransactionFees.BlockFees', + /** + * Storage fees. + */ + v0: new EventType( + 'TransactionFees.BlockFees', + sts.struct({ + /** + * Block author that received the fees. + */ + who: v0.AccountId32, + /** + * Amount of collected storage fees. + */ + storage: sts.bigint(), + /** + * Amount of collected compute fees. + */ + compute: sts.bigint(), + /** + * Amount of collected tips. + */ + tips: sts.bigint(), + }) + ), +} + +export const burnedBlockFees = { + name: 'TransactionFees.BurnedBlockFees', + /** + * Fees burned due to equivocated block author. + */ + v0: new EventType( + 'TransactionFees.BurnedBlockFees', + sts.struct({ + /** + * Amount of burned storage fees. + */ + storage: sts.bigint(), + /** + * Amount of burned compute fees. + */ + compute: sts.bigint(), + /** + * Amount of burned tips. + */ + tips: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/transaction-fees/storage.ts b/indexers/accounts-squid/src/types/transaction-fees/storage.ts new file mode 100644 index 000000000..34c003453 --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-fees/storage.ts @@ -0,0 +1,86 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const transactionByteFee = { + /** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ + v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, +} + +/** + * The value of `transaction_byte_fee` for both the current and the next block. + * + * The `next` value of `transaction_byte_fee` is updated at block finalization and used to + * validate extrinsic to be included in the next block, the value is move to `current` at + * block initialization and used to execute extrinsic in the current block. Together it + * ensure we use the same value for both validating and executing the extrinsic. + * + * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in + * the genesis block which means there will be no signed extrinsic included in block #1. + */ +export interface TransactionByteFeeV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.BlockTransactionByteFee + get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> +} + +export const isDuringBlockExecution = { + /** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ + v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, +} + +/** + * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` + * is used to validate extrinsic or execute extrinsic. + */ +export interface IsDuringBlockExecutionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): boolean + get(block: Block): Promise<(boolean | undefined)> +} + +export const blockAuthor = { + /** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, +} + +/** + * Temporary value (cleared at block finalization) which contains current block author, so we + * can issue fees during block finalization. + */ +export interface BlockAuthorV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.AccountId32 | undefined)> +} + +export const collectedBlockFees = { + /** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ + v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, +} + +/** + * Temporary value (cleared at block finalization) which contains current block fees, so we can + * issue fees during block finalization. + */ +export interface CollectedBlockFeesV0 { + is(block: RuntimeCtx): boolean + get(block: Block): Promise<(v0.CollectedFees | undefined)> +} diff --git a/indexers/accounts-squid/src/types/transaction-payment/constants.ts b/indexers/accounts-squid/src/types/transaction-payment/constants.ts new file mode 100644 index 000000000..92856764a --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-payment/constants.ts @@ -0,0 +1,31 @@ +import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' + +export const operationalFeeMultiplier = { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + */ + v0: new ConstantType( + 'TransactionPayment.OperationalFeeMultiplier', + sts.number() + ), +} diff --git a/indexers/accounts-squid/src/types/transaction-payment/events.ts b/indexers/accounts-squid/src/types/transaction-payment/events.ts new file mode 100644 index 000000000..f2e82a56e --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-payment/events.ts @@ -0,0 +1,18 @@ +import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const transactionFeePaid = { + name: 'TransactionPayment.TransactionFeePaid', + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ + v0: new EventType( + 'TransactionPayment.TransactionFeePaid', + sts.struct({ + who: v0.AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }) + ), +} diff --git a/indexers/accounts-squid/src/types/transaction-payment/storage.ts b/indexers/accounts-squid/src/types/transaction-payment/storage.ts new file mode 100644 index 000000000..1fe2ddae7 --- /dev/null +++ b/indexers/accounts-squid/src/types/transaction-payment/storage.ts @@ -0,0 +1,22 @@ +import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' +import * as v0 from '../v0' + +export const nextFeeMultiplier = { + v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, +} + +export interface NextFeeMultiplierV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.FixedU128 + get(block: Block): Promise<(v0.FixedU128 | undefined)> +} + +export const storageVersion = { + v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, +} + +export interface StorageVersionV0 { + is(block: RuntimeCtx): boolean + getDefault(block: Block): v0.Releases + get(block: Block): Promise<(v0.Releases | undefined)> +} diff --git a/indexers/accounts-squid/src/types/v0.ts b/indexers/accounts-squid/src/types/v0.ts new file mode 100644 index 000000000..a00fca6ac --- /dev/null +++ b/indexers/accounts-squid/src/types/v0.ts @@ -0,0 +1,3281 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const HistorySize = sts.bigint() + +export const RuntimeVersion: sts.Type = sts.struct(() => { + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } +}) + +export interface RuntimeVersion { + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number +} + +export const RuntimeDbWeight: sts.Type = sts.struct(() => { + return { + read: sts.bigint(), + write: sts.bigint(), + } +}) + +export interface RuntimeDbWeight { + read: bigint + write: bigint +} + +export const BlockLength: sts.Type = sts.struct(() => { + return { + max: Type_85, + } +}) + +export const Type_85: sts.Type = sts.struct(() => { + return { + normal: sts.number(), + operational: sts.number(), + mandatory: sts.number(), + } +}) + +export interface Type_85 { + normal: number + operational: number + mandatory: number +} + +export interface BlockLength { + max: Type_85 +} + +export const BlockWeights: sts.Type = sts.struct(() => { + return { + baseBlock: Weight, + maxBlock: Weight, + perClass: Type_81, + } +}) + +export const Type_81: sts.Type = sts.struct(() => { + return { + normal: WeightsPerClass, + operational: WeightsPerClass, + mandatory: WeightsPerClass, + } +}) + +export const WeightsPerClass: sts.Type = sts.struct(() => { + return { + baseExtrinsic: Weight, + maxExtrinsic: sts.option(() => Weight), + maxTotal: sts.option(() => Weight), + reserved: sts.option(() => Weight), + } +}) + +export interface WeightsPerClass { + baseExtrinsic: Weight + maxExtrinsic?: (Weight | undefined) + maxTotal?: (Weight | undefined) + reserved?: (Weight | undefined) +} + +export interface Type_81 { + normal: WeightsPerClass + operational: WeightsPerClass + mandatory: WeightsPerClass +} + +export interface BlockWeights { + baseBlock: Weight + maxBlock: Weight + perClass: Type_81 +} + +export interface TxRangeState { + txRange: U256 + intervalBlocks: bigint + intervalBundles: bigint +} + +export type U256 = bigint + +export const TxRangeState: sts.Type = sts.struct(() => { + return { + txRange: U256, + intervalBlocks: sts.bigint(), + intervalBundles: sts.bigint(), + } +}) + +export const U256 = sts.bigint() + +export interface ElectionVerificationParams { + operators: [bigint, bigint][] + totalDomainStake: bigint +} + +export const ElectionVerificationParams: sts.Type = sts.struct(() => { + return { + operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + totalDomainStake: sts.bigint(), + } +}) + +export interface BundleDigest { + headerHash: H256 + extrinsicsRoot: H256 +} + +export const BundleDigest: sts.Type = sts.struct(() => { + return { + headerHash: H256, + extrinsicsRoot: H256, + } +}) + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidXDM { + __kind: 'InvalidXDM' + value: number +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export interface Withdrawal { + totalWithdrawalAmount: bigint + withdrawals: [DomainId, number, bigint][] + withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) +} + +export const Withdrawal: sts.Type = sts.struct(() => { + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), + withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), + } +}) + +export interface Deposit { + known: KnownDeposit + pending?: (PendingDeposit | undefined) +} + +export interface PendingDeposit { + effectiveDomainEpoch: DomainEpoch + amount: bigint +} + +export interface KnownDeposit { + shares: bigint +} + +export const Deposit: sts.Type = sts.struct(() => { + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } +}) + +export const PendingDeposit: sts.Type = sts.struct(() => { + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + } +}) + +export const KnownDeposit: sts.Type = sts.struct(() => { + return { + shares: sts.bigint(), + } +}) + +export type DomainEpoch = [DomainId, number] + +export type SharePrice = number + +export const SharePrice = sts.number() + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const Percent = sts.number() + +export interface StakingSummary { + currentEpochIndex: number + currentTotalStake: bigint + currentOperators: [bigint, bigint][] + nextOperators: bigint[] + currentEpochRewards: [bigint, bigint][] +} + +export const StakingSummary: sts.Type = sts.struct(() => { + return { + currentEpochIndex: sts.number(), + currentTotalStake: sts.bigint(), + currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + nextOperators: sts.array(() => sts.bigint()), + currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), + } +}) + +export interface ScheduledRuntimeUpgrade { + rawGenesis: RawGenesis + version: RuntimeVersion + hash: H256 +} + +export interface RawGenesis { + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] +} + +export type StorageData = Bytes + +export type StorageKey = Bytes + +export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { + return { + rawGenesis: RawGenesis, + version: RuntimeVersion, + hash: H256, + } +}) + +export const RawGenesis: sts.Type = sts.struct(() => { + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } +}) + +export const StorageData = sts.bytes() + +export const StorageKey = sts.bytes() + +export interface RuntimeObject { + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number +} + +export type RuntimeType = RuntimeType_Evm + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +export const RuntimeObject: sts.Type = sts.struct(() => { + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } +}) + +export type DomainId = number + +export type Releases = Releases_V1Ancient | Releases_V2 + +export interface Releases_V1Ancient { + __kind: 'V1Ancient' +} + +export interface Releases_V2 { + __kind: 'V2' +} + +export const Releases: sts.Type = sts.closedEnum(() => { + return { + V1Ancient: sts.unit(), + V2: sts.unit(), + } +}) + +export type FixedU128 = bigint + +export const FixedU128 = sts.bigint() + +export interface CollectedFees { + storage: bigint + compute: bigint + tips: bigint +} + +export const CollectedFees: sts.Type = sts.struct(() => { + return { + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + } +}) + +export interface BlockTransactionByteFee { + current: bigint + next: bigint +} + +export const BlockTransactionByteFee: sts.Type = sts.struct(() => { + return { + current: sts.bigint(), + next: sts.bigint(), + } +}) + +export interface Type_152 { + amount: bigint +} + +export const Type_152: sts.Type = sts.struct(() => { + return { + amount: sts.bigint(), + } +}) + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export interface ReserveData { + id: Bytes + amount: bigint +} + +export const ReserveData: sts.Type = sts.struct(() => { + return { + id: sts.bytes(), + amount: sts.bigint(), + } +}) + +export interface BalanceLock { + id: Bytes + amount: bigint + reasons: Reasons +} + +export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc + +export interface Reasons_All { + __kind: 'All' +} + +export interface Reasons_Fee { + __kind: 'Fee' +} + +export interface Reasons_Misc { + __kind: 'Misc' +} + +export const BalanceLock: sts.Type = sts.struct(() => { + return { + id: sts.bytes(), + amount: sts.bigint(), + reasons: Reasons, + } +}) + +export const Reasons: sts.Type = sts.closedEnum(() => { + return { + All: sts.unit(), + Fee: sts.unit(), + Misc: sts.unit(), + } +}) + +export interface AccountData { + free: bigint + reserved: bigint + frozen: bigint + flags: ExtraFlags +} + +export type ExtraFlags = bigint + +export const AccountData: sts.Type = sts.struct(() => { + return { + free: sts.bigint(), + reserved: sts.bigint(), + frozen: sts.bigint(), + flags: ExtraFlags, + } +}) + +export const ExtraFlags = sts.bigint() + +export type Randomness = Bytes + +export const Randomness = sts.bytes() + +export interface PotEntropyValue { + targetSlot?: (Slot | undefined) + entropy: Bytes +} + +export const PotEntropyValue: sts.Type = sts.struct(() => { + return { + targetSlot: sts.option(() => Slot), + entropy: sts.bytes(), + } +}) + +export type Signature = Bytes + +export const Signature = sts.bytes() + +export interface Scalar { + inner: Bytes +} + +export type PieceOffset = number + +export const Scalar: sts.Type = sts.struct(() => { + return { + inner: sts.bytes(), + } +}) + +export const PieceOffset = sts.number() + +export interface VoteVerificationData { + solutionRange: bigint + voteSolutionRange: bigint + currentSlot: Slot + parentSlot: Slot +} + +export const VoteVerificationData: sts.Type = sts.struct(() => { + return { + solutionRange: sts.bigint(), + voteSolutionRange: sts.bigint(), + currentSlot: Slot, + parentSlot: Slot, + } +}) + +export type SegmentIndex = bigint + +export type SegmentCommitment = Bytes + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export type Public = Bytes + +export interface SolutionRangeOverride { + solutionRange: bigint + votingSolutionRange: bigint +} + +export const SolutionRangeOverride: sts.Type = sts.struct(() => { + return { + solutionRange: sts.bigint(), + votingSolutionRange: sts.bigint(), + } +}) + +export interface SolutionRanges { + current: bigint + next?: (bigint | undefined) + votingCurrent: bigint + votingNext?: (bigint | undefined) +} + +export const SolutionRanges: sts.Type = sts.struct(() => { + return { + current: sts.bigint(), + next: sts.option(() => sts.bigint()), + votingCurrent: sts.bigint(), + votingNext: sts.option(() => sts.bigint()), + } +}) + +export type NonZeroU32 = number + +export const NonZeroU32 = sts.number() + +export type Slot = bigint + +export const Slot = sts.bigint() + +export interface CodeUpgradeAuthorization { + codeHash: H256 + checkVersion: boolean +} + +export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { + return { + codeHash: H256, + checkVersion: sts.boolean(), + } +}) + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export interface LastRuntimeUpgradeInfo { + specVersion: number + specName: string +} + +export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { + return { + specVersion: sts.number(), + specName: sts.string(), + } +}) + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author. + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter. + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_BundleEquivocation { + __kind: 'BundleEquivocation' + value: Slot +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export interface Digest { + logs: DigestItem[] +} + +export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal + +export interface DigestItem_Consensus { + __kind: 'Consensus' + value: [Bytes, Bytes] +} + +export interface DigestItem_Other { + __kind: 'Other' + value: Bytes +} + +export interface DigestItem_PreRuntime { + __kind: 'PreRuntime' + value: [Bytes, Bytes] +} + +export interface DigestItem_RuntimeEnvironmentUpdated { + __kind: 'RuntimeEnvironmentUpdated' +} + +export interface DigestItem_Seal { + __kind: 'Seal' + value: [Bytes, Bytes] +} + +export const Digest: sts.Type = sts.struct(() => { + return { + logs: sts.array(() => DigestItem), + } +}) + +export const DigestItem: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), + Other: sts.bytes(), + PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), + RuntimeEnvironmentUpdated: sts.unit(), + Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), + } +}) + +export type H256 = Bytes + +export interface PerDispatchClass { + normal: Weight + operational: Weight + mandatory: Weight +} + +export const PerDispatchClass: sts.Type = sts.struct(() => { + return { + normal: Weight, + operational: Weight, + mandatory: Weight, + } +}) + +export type AccountId32 = Bytes + +export interface AccountInfo { + nonce: number + consumers: number + providers: number + sufficients: number + data: AccountData +} + +export const AccountInfo: sts.Type = sts.struct(() => { + return { + nonce: sts.number(), + consumers: sts.number(), + providers: sts.number(), + sufficients: sts.number(), + data: AccountData, + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + } +}) + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +export const FraudProof: sts.Type = sts.closedEnum(() => { + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } +}) + +export interface ValidBundleProof { + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number +} + +export const InvalidTransactionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export interface InvalidTransactionProof { + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } +}) + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof +} + +export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } +}) + +export interface InvalidBundlesFraudProof { + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + } +}) + +export interface ImproperTransactionSortitionProof { + domainId: DomainId + badReceiptHash: H256 +} + +export const BundleEquivocationProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } +}) + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + bundleSize: sts.number(), + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + globalRandomness: Randomness, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + globalRandomness: Randomness + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + bundleSize: number + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleEquivocationProof { + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle + +export interface FraudProof_BundleEquivocation { + __kind: 'BundleEquivocation' + value: BundleEquivocationProof +} + +export interface FraudProof_ImproperTransactionSortition { + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof +} + +export interface FraudProof_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProof_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof +} + +export interface FraudProof_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProof_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProof_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProof_InvalidTransaction { + __kind: 'InvalidTransaction' + value: InvalidTransactionProof +} + +export interface FraudProof_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export const MultiAddress: sts.Type = sts.closedEnum(() => { + return { + Address20: sts.bytes(), + Address32: sts.bytes(), + Id: AccountId32, + Index: sts.unit(), + Raw: sts.bytes(), + } +}) + +export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw + +export interface MultiAddress_Address20 { + __kind: 'Address20' + value: Bytes +} + +export interface MultiAddress_Address32 { + __kind: 'Address32' + value: Bytes +} + +export interface MultiAddress_Id { + __kind: 'Id' + value: AccountId32 +} + +export interface MultiAddress_Index { + __kind: 'Index' +} + +export interface MultiAddress_Raw { + __kind: 'Raw' + value: Bytes +} + +export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { + return { + Height: sts.option(() => sts.number()), + Manually: sts.unit(), + SolutionRange: sts.bigint(), + } +}) + +export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange + +export interface EnableRewardsAt_Height { + __kind: 'Height' + value?: (number | undefined) +} + +export interface EnableRewardsAt_Manually { + __kind: 'Manually' +} + +export interface EnableRewardsAt_SolutionRange { + __kind: 'SolutionRange' + value: bigint +} + +export const SignedVote: sts.Type = sts.struct(() => { + return { + vote: Vote, + signature: Signature, + } +}) + +export const Vote: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + height: sts.number(), + parentHash: H256, + slot: Slot, + solution: Solution, + proofOfTime: PotOutput, + futureProofOfTime: PotOutput, + }), + } +}) + +export const PotOutput = sts.bytes() + +export const Solution: sts.Type = sts.struct(() => { + return { + publicKey: Public, + rewardAddress: AccountId32, + sectorIndex: sts.number(), + historySize: HistorySize, + pieceOffset: PieceOffset, + recordCommitment: RecordCommitment, + recordWitness: RecordWitness, + chunk: Scalar, + chunkWitness: ChunkWitness, + proofOfSpace: PosProof, + } +}) + +export const PosProof = sts.bytes() + +export const ChunkWitness = sts.bytes() + +export const RecordWitness = sts.bytes() + +export const RecordCommitment = sts.bytes() + +export interface Solution { + publicKey: Public + rewardAddress: AccountId32 + sectorIndex: number + historySize: HistorySize + pieceOffset: PieceOffset + recordCommitment: RecordCommitment + recordWitness: RecordWitness + chunk: Scalar + chunkWitness: ChunkWitness + proofOfSpace: PosProof +} + +export type PosProof = Bytes + +export type ChunkWitness = Bytes + +export type RecordWitness = Bytes + +export type RecordCommitment = Bytes + +export type HistorySize = bigint + +export type Vote = Vote_V0 + +export interface Vote_V0 { + __kind: 'V0' + height: number + parentHash: H256 + slot: Slot + solution: Solution + proofOfTime: PotOutput + futureProofOfTime: PotOutput +} + +export type PotOutput = Bytes + +export interface SignedVote { + vote: Vote + signature: Signature +} + +export const EquivocationProof: sts.Type = sts.struct(() => { + return { + offender: Public, + slot: Slot, + firstHeader: Header, + secondHeader: Header, + } +}) + +export const Header: sts.Type
= sts.struct(() => { + return { + parentHash: H256, + number: sts.number(), + stateRoot: H256, + extrinsicsRoot: H256, + digest: Digest, + } +}) + +export interface Header { + parentHash: H256 + number: number + stateRoot: H256 + extrinsicsRoot: H256 + digest: Digest +} + +export interface EquivocationProof { + offender: Public + slot: Slot + firstHeader: Header + secondHeader: Header +} + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } +}) + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + Evm: sts.unit(), + } +}) + +export const DomainId = sts.number() + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Public = sts.bytes() + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export const AccountId32 = sts.bytes() + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) diff --git a/indexers/accounts-squid/src/types/v1.ts b/indexers/accounts-squid/src/types/v1.ts new file mode 100644 index 000000000..4891a0287 --- /dev/null +++ b/indexers/accounts-squid/src/types/v1.ts @@ -0,0 +1,2706 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export const PalletId = sts.bytes() + +export interface ConfirmedDomainBlock { + blockNumber: number + blockHash: H256 + parentBlockReceiptHash: H256 + stateRoot: H256 + extrinsicsRoot: H256 +} + +export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { + return { + blockNumber: sts.number(), + blockHash: H256, + parentBlockReceiptHash: H256, + stateRoot: H256, + extrinsicsRoot: H256, + } +}) + +export interface BundleDigest { + headerHash: H256 + extrinsicsRoot: H256 + size: number +} + +export const BundleDigest: sts.Type = sts.struct(() => { + return { + headerHash: H256, + extrinsicsRoot: H256, + size: sts.number(), + } +}) + +export type H256 = Bytes + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers +} + +export interface Transfers { + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidXDM { + __kind: 'InvalidXDM' + value: number +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } +}) + +export const Transfers: sts.Type = sts.struct(() => { + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } +}) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidXDM: sts.number(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export type DomainId = number + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] +} + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export const DomainId = sts.number() + +export interface Withdrawal { + totalWithdrawalAmount: bigint + withdrawals: WithdrawalInBalance[] + withdrawalInShares?: (WithdrawalInShares | undefined) +} + +export interface WithdrawalInShares { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number + shares: bigint + storageFeeRefund: bigint +} + +export type DomainEpoch = [DomainId, number] + +export interface WithdrawalInBalance { + domainId: DomainId + unlockAtConfirmedDomainBlockNumber: number + amountToUnlock: bigint + storageFeeRefund: bigint +} + +export const Withdrawal: sts.Type = sts.struct(() => { + return { + totalWithdrawalAmount: sts.bigint(), + withdrawals: sts.array(() => WithdrawalInBalance), + withdrawalInShares: sts.option(() => WithdrawalInShares), + } +}) + +export const WithdrawalInShares: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + shares: sts.bigint(), + storageFeeRefund: sts.bigint(), + } +}) + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export const WithdrawalInBalance: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + unlockAtConfirmedDomainBlockNumber: sts.number(), + amountToUnlock: sts.bigint(), + storageFeeRefund: sts.bigint(), + } +}) + +export interface Deposit { + known: KnownDeposit + pending?: (PendingDeposit | undefined) +} + +export interface PendingDeposit { + effectiveDomainEpoch: DomainEpoch + amount: bigint + storageFeeDeposit: bigint +} + +export interface KnownDeposit { + shares: bigint + storageFeeDeposit: bigint +} + +export const Deposit: sts.Type = sts.struct(() => { + return { + known: KnownDeposit, + pending: sts.option(() => PendingDeposit), + } +}) + +export const PendingDeposit: sts.Type = sts.struct(() => { + return { + effectiveDomainEpoch: DomainEpoch, + amount: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } +}) + +export const KnownDeposit: sts.Type = sts.struct(() => { + return { + shares: sts.bigint(), + storageFeeDeposit: sts.bigint(), + } +}) + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const Percent = sts.number() + +export type AccountId32 = Bytes + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export interface DomainsHoldIdentifier_StorageFund { + __kind: 'StorageFund' + value: bigint +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author or rewards not enabled. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +export type SegmentCommitment = Bytes + +export type SegmentIndex = bigint + +export type Public = Bytes + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author. + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter. + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_StorageFeeDeposited { + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_BundleEquivocation { + __kind: 'BundleEquivocation' + value: Slot +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +export type Slot = bigint + +export type RuntimeType = RuntimeType_Evm + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export const Public = sts.bytes() + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + BundleEquivocation: Slot, + InvalidBundle: sts.number(), + } +}) + +export const Slot = sts.bigint() + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + Evm: sts.unit(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const FraudProof: sts.Type = sts.closedEnum(() => { + return { + BundleEquivocation: BundleEquivocationProof, + ImproperTransactionSortition: ImproperTransactionSortitionProof, + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesFraudProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransaction: InvalidTransactionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + bundleIndex: sts.number(), + } +}) + +export interface ValidBundleProof { + domainId: DomainId + badReceiptHash: H256 + bundleIndex: number +} + +export const InvalidTransfersProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export interface InvalidTransfersProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const InvalidTransactionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + domainBlockNumber: sts.number(), + domainBlockHash: H256, + invalidExtrinsic: sts.bytes(), + storageProof: StorageProof, + } +}) + +export interface InvalidTransactionProof { + domainId: DomainId + badReceiptHash: H256 + domainBlockNumber: number + domainBlockHash: H256 + invalidExtrinsic: Bytes + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + proof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + domainId: DomainId + badReceiptHash: H256 + proof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + validBundleDigests: sts.array(() => ValidBundleDigest), + } +}) + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + domainId: DomainId + badReceiptHash: H256 + validBundleDigests: ValidBundleDigest[] +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + domainId: DomainId + badReceiptHash: H256 + digestStorageProof: StorageProof +} + +export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { + return { + badReceiptHash: H256, + domainId: DomainId, + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + proofData: StorageProof, + isTrueInvalidFraudProof: sts.boolean(), + } +}) + +export interface InvalidBundlesFraudProof { + badReceiptHash: H256 + domainId: DomainId + bundleIndex: number + invalidBundleType: InvalidBundleType + proofData: StorageProof + isTrueInvalidFraudProof: boolean +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + domainId: DomainId + badReceiptHash: H256 + storageProof: StorageProof +} + +export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + } +}) + +export interface ImproperTransactionSortitionProof { + domainId: DomainId + badReceiptHash: H256 +} + +export const BundleEquivocationProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slot: Slot, + firstHeader: SealedBundleHeader, + secondHeader: SealedBundleHeader, + } +}) + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export const PotOutput = sts.bytes() + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export type PotOutput = Bytes + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleEquivocationProof { + domainId: DomainId + slot: Slot + firstHeader: SealedBundleHeader + secondHeader: SealedBundleHeader +} + +export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle + +export interface FraudProof_BundleEquivocation { + __kind: 'BundleEquivocation' + value: BundleEquivocationProof +} + +export interface FraudProof_ImproperTransactionSortition { + __kind: 'ImproperTransactionSortition' + value: ImproperTransactionSortitionProof +} + +export interface FraudProof_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProof_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesFraudProof +} + +export interface FraudProof_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProof_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProof_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProof_InvalidTransaction { + __kind: 'InvalidTransaction' + value: InvalidTransactionProof +} + +export interface FraudProof_InvalidTransfers { + __kind: 'InvalidTransfers' + value: InvalidTransfersProof +} + +export interface FraudProof_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export const AccountId32 = sts.bytes() diff --git a/indexers/accounts-squid/src/types/v3.ts b/indexers/accounts-squid/src/types/v3.ts new file mode 100644 index 000000000..73fc962ae --- /dev/null +++ b/indexers/accounts-squid/src/types/v3.ts @@ -0,0 +1,205 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export interface RewardPoint { + block: number + subsidy: bigint +} + +export type DomainId = number + +export const DomainId = sts.number() + +export interface Operator { + signingKey: Bytes + currentDomainId: DomainId + nextDomainId: DomainId + minimumNominatorStake: bigint + nominationTax: Percent + currentTotalStake: bigint + currentEpochRewards: bigint + currentTotalShares: bigint + status: OperatorStatus + depositsInEpoch: bigint + withdrawalsInEpoch: bigint + totalStorageFeeDeposit: bigint +} + +export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed + +export interface OperatorStatus_Deregistered { + __kind: 'Deregistered' + value: OperatorDeregisteredInfo +} + +export interface OperatorStatus_PendingSlash { + __kind: 'PendingSlash' +} + +export interface OperatorStatus_Registered { + __kind: 'Registered' +} + +export interface OperatorStatus_Slashed { + __kind: 'Slashed' +} + +export interface OperatorDeregisteredInfo { + domainEpoch: DomainEpoch + unlockAtConfirmedDomainBlockNumber: number +} + +export type DomainEpoch = [DomainId, number] + +export type Percent = number + +export const Operator: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + currentDomainId: DomainId, + nextDomainId: DomainId, + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + currentTotalStake: sts.bigint(), + currentEpochRewards: sts.bigint(), + currentTotalShares: sts.bigint(), + status: OperatorStatus, + depositsInEpoch: sts.bigint(), + withdrawalsInEpoch: sts.bigint(), + totalStorageFeeDeposit: sts.bigint(), + } +}) + +export const OperatorStatus: sts.Type = sts.closedEnum(() => { + return { + Deregistered: OperatorDeregisteredInfo, + PendingSlash: sts.unit(), + Registered: sts.unit(), + Slashed: sts.unit(), + } +}) + +export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { + return { + domainEpoch: DomainEpoch, + unlockAtConfirmedDomainBlockNumber: sts.number(), + } +}) + +export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) + +export const Percent = sts.number() + +export type AccountId32 = Bytes + +export interface IdAmount { + id: HoldIdentifier + amount: bigint +} + +export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger + +export interface HoldIdentifier_Domains { + __kind: 'Domains' + value: DomainsHoldIdentifier +} + +export interface HoldIdentifier_Messenger { + __kind: 'Messenger' + value: MessengerHoldIdentifier +} + +export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel + +export interface MessengerHoldIdentifier_Channel { + __kind: 'Channel' + value: [ChainId, bigint] +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund + +export interface DomainsHoldIdentifier_DomainInstantiation { + __kind: 'DomainInstantiation' + value: DomainId +} + +export interface DomainsHoldIdentifier_Staking { + __kind: 'Staking' + value: StakingHoldIdentifier +} + +export interface DomainsHoldIdentifier_StorageFund { + __kind: 'StorageFund' + value: bigint +} + +export type StakingHoldIdentifier = StakingHoldIdentifier_Staked + +export interface StakingHoldIdentifier_Staked { + __kind: 'Staked' + value: bigint +} + +export const IdAmount: sts.Type = sts.struct(() => { + return { + id: HoldIdentifier, + amount: sts.bigint(), + } +}) + +export const HoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Domains: DomainsHoldIdentifier, + Messenger: MessengerHoldIdentifier, + } +}) + +export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Channel: sts.tuple(() => [ChainId, sts.bigint()]), + } +}) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + DomainInstantiation: DomainId, + Staking: StakingHoldIdentifier, + StorageFund: sts.bigint(), + } +}) + +export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { + return { + Staked: sts.bigint(), + } +}) + +export const AccountId32 = sts.bytes() + +export type Slot = bigint + +export const Slot = sts.bigint() + +export const RewardPoint: sts.Type = sts.struct(() => { + return { + block: sts.number(), + subsidy: sts.bigint(), + } +}) diff --git a/indexers/accounts-squid/src/types/v5.ts b/indexers/accounts-squid/src/types/v5.ts new file mode 100644 index 000000000..f626e91f8 --- /dev/null +++ b/indexers/accounts-squid/src/types/v5.ts @@ -0,0 +1,2724 @@ +import {sts, Result, Option, Bytes, BitSequence} from './support' + +export interface DomainRuntimeUpgradeEntry { + atHash: H256 + referenceCount: number +} + +export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { + return { + atHash: H256, + referenceCount: sts.number(), + } +}) + +export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone + +export interface PermissionedActionAllowedBy_Accounts { + __kind: 'Accounts' + value: AccountId32[] +} + +export interface PermissionedActionAllowedBy_Anyone { + __kind: 'Anyone' +} + +export type AccountId32 = Bytes + +export type H256 = Bytes + +export interface BlockTreeNode { + executionReceipt: ExecutionReceipt + operatorIds: bigint[] +} + +export interface ExecutionReceipt { + domainBlockNumber: number + domainBlockHash: H256 + domainBlockExtrinsicRoot: H256 + parentDomainBlockReceiptHash: H256 + consensusBlockNumber: number + consensusBlockHash: H256 + inboxedBundles: InboxedBundle[] + finalStateRoot: H256 + executionTrace: H256[] + executionTraceRoot: H256 + blockFees: BlockFees + transfers: Transfers +} + +export interface Transfers { + transfersIn: [ChainId, bigint][] + transfersOut: [ChainId, bigint][] + rejectedTransfersClaimed: [ChainId, bigint][] + transfersRejected: [ChainId, bigint][] +} + +export type ChainId = ChainId_Consensus | ChainId_Domain + +export interface ChainId_Consensus { + __kind: 'Consensus' +} + +export interface ChainId_Domain { + __kind: 'Domain' + value: DomainId +} + +export interface BlockFees { + consensusStorageFee: bigint + domainExecutionFee: bigint + burnedBalance: bigint +} + +export interface InboxedBundle { + bundle: BundleValidity + extrinsicsRoot: H256 +} + +export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid + +export interface BundleValidity_Invalid { + __kind: 'Invalid' + value: InvalidBundleType +} + +export interface BundleValidity_Valid { + __kind: 'Valid' + value: H256 +} + +export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx + +export interface InvalidBundleType_IllegalTx { + __kind: 'IllegalTx' + value: number +} + +export interface InvalidBundleType_InherentExtrinsic { + __kind: 'InherentExtrinsic' + value: number +} + +export interface InvalidBundleType_InvalidBundleWeight { + __kind: 'InvalidBundleWeight' +} + +export interface InvalidBundleType_OutOfRangeTx { + __kind: 'OutOfRangeTx' + value: number +} + +export interface InvalidBundleType_UndecodableTx { + __kind: 'UndecodableTx' + value: number +} + +export const BlockTreeNode: sts.Type = sts.struct(() => { + return { + executionReceipt: ExecutionReceipt, + operatorIds: sts.array(() => sts.bigint()), + } +}) + +export const ExecutionReceipt: sts.Type = sts.struct(() => { + return { + domainBlockNumber: sts.number(), + domainBlockHash: H256, + domainBlockExtrinsicRoot: H256, + parentDomainBlockReceiptHash: H256, + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + inboxedBundles: sts.array(() => InboxedBundle), + finalStateRoot: H256, + executionTrace: sts.array(() => H256), + executionTraceRoot: H256, + blockFees: BlockFees, + transfers: Transfers, + } +}) + +export const Transfers: sts.Type = sts.struct(() => { + return { + transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), + } +}) + +export const ChainId: sts.Type = sts.closedEnum(() => { + return { + Consensus: sts.unit(), + Domain: DomainId, + } +}) + +export const BlockFees: sts.Type = sts.struct(() => { + return { + consensusStorageFee: sts.bigint(), + domainExecutionFee: sts.bigint(), + burnedBalance: sts.bigint(), + } +}) + +export const InboxedBundle: sts.Type = sts.struct(() => { + return { + bundle: BundleValidity, + extrinsicsRoot: H256, + } +}) + +export const BundleValidity: sts.Type = sts.closedEnum(() => { + return { + Invalid: InvalidBundleType, + Valid: H256, + } +}) + +export const InvalidBundleType: sts.Type = sts.closedEnum(() => { + return { + IllegalTx: sts.number(), + InherentExtrinsic: sts.number(), + InvalidBundleWeight: sts.unit(), + OutOfRangeTx: sts.number(), + UndecodableTx: sts.number(), + } +}) + +export const H256 = sts.bytes() + +export type DomainId = number + +export interface DomainObject { + ownerAccountId: AccountId32 + createdAt: number + genesisReceiptHash: H256 + domainConfig: DomainConfig + domainRuntimeInfo: DomainRuntimeInfo +} + +export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM + +export interface DomainRuntimeInfo_AutoId { + __kind: 'AutoId' +} + +export interface DomainRuntimeInfo_EVM { + __kind: 'EVM' + chainId: bigint +} + +export interface DomainConfig { + domainName: string + runtimeId: number + maxBlockSize: number + maxBlockWeight: Weight + bundleSlotProbability: [bigint, bigint] + targetBundlesPerBlock: number + operatorAllowList: OperatorAllowList + initialBalances: [MultiAccountId, bigint][] +} + +export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw + +export interface MultiAccountId_AccountId20 { + __kind: 'AccountId20' + value: Bytes +} + +export interface MultiAccountId_AccountId32 { + __kind: 'AccountId32' + value: Bytes +} + +export interface MultiAccountId_Raw { + __kind: 'Raw' + value: Bytes +} + +export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators + +export interface OperatorAllowList_Anyone { + __kind: 'Anyone' +} + +export interface OperatorAllowList_Operators { + __kind: 'Operators' + value: AccountId32[] +} + +export interface Weight { + refTime: bigint + proofSize: bigint +} + +export const DomainObject: sts.Type = sts.struct(() => { + return { + ownerAccountId: AccountId32, + createdAt: sts.number(), + genesisReceiptHash: H256, + domainConfig: DomainConfig, + domainRuntimeInfo: DomainRuntimeInfo, + } +}) + +export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { + return { + AutoId: sts.unit(), + EVM: sts.enumStruct({ + chainId: sts.bigint(), + }), + } +}) + +export const DomainConfig: sts.Type = sts.struct(() => { + return { + domainName: sts.string(), + runtimeId: sts.number(), + maxBlockSize: sts.number(), + maxBlockWeight: Weight, + bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), + targetBundlesPerBlock: sts.number(), + operatorAllowList: OperatorAllowList, + initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), + } +}) + +export const MultiAccountId: sts.Type = sts.closedEnum(() => { + return { + AccountId20: sts.bytes(), + AccountId32: sts.bytes(), + Raw: sts.bytes(), + } +}) + +export const OperatorAllowList: sts.Type = sts.closedEnum(() => { + return { + Anyone: sts.unit(), + Operators: sts.array(() => AccountId32), + } +}) + +export const Weight: sts.Type = sts.struct(() => { + return { + refTime: sts.bigint(), + proofSize: sts.bigint(), + } +}) + +export const AccountId32 = sts.bytes() + +export interface RuntimeObject { + runtimeName: string + runtimeType: RuntimeType + runtimeUpgrades: number + hash: H256 + rawGenesis: RawGenesis + version: RuntimeVersion + createdAt: number + updatedAt: number +} + +export interface RuntimeVersion { + specName: string + implName: string + authoringVersion: number + specVersion: number + implVersion: number + apis: [Bytes, number][] + transactionVersion: number + stateVersion: number + extrinsicStateVersion: number +} + +export interface RawGenesis { + top: [StorageKey, StorageData][] + childrenDefault: [StorageKey, [StorageKey, StorageData][]][] +} + +export type StorageData = Bytes + +export type StorageKey = Bytes + +export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm + +export interface RuntimeType_AutoId { + __kind: 'AutoId' +} + +export interface RuntimeType_Evm { + __kind: 'Evm' +} + +export const RuntimeObject: sts.Type = sts.struct(() => { + return { + runtimeName: sts.string(), + runtimeType: RuntimeType, + runtimeUpgrades: sts.number(), + hash: H256, + rawGenesis: RawGenesis, + version: RuntimeVersion, + createdAt: sts.number(), + updatedAt: sts.number(), + } +}) + +export const RuntimeVersion: sts.Type = sts.struct(() => { + return { + specName: sts.string(), + implName: sts.string(), + authoringVersion: sts.number(), + specVersion: sts.number(), + implVersion: sts.number(), + apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), + transactionVersion: sts.number(), + stateVersion: sts.number(), + extrinsicStateVersion: sts.number(), + } +}) + +export const RawGenesis: sts.Type = sts.struct(() => { + return { + top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), + childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), + } +}) + +export const StorageData = sts.bytes() + +export const StorageKey = sts.bytes() + +export interface EventRecord { + phase: Phase + event: Event + topics: H256[] +} + +export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting + +export interface Event_Balances { + __kind: 'Balances' + value: BalancesEvent +} + +export interface Event_Domains { + __kind: 'Domains' + value: DomainsEvent +} + +export interface Event_Messenger { + __kind: 'Messenger' + value: MessengerEvent +} + +export interface Event_OffencesSubspace { + __kind: 'OffencesSubspace' + value: OffencesSubspaceEvent +} + +export interface Event_Rewards { + __kind: 'Rewards' + value: RewardsEvent +} + +export interface Event_Subspace { + __kind: 'Subspace' + value: SubspaceEvent +} + +export interface Event_Sudo { + __kind: 'Sudo' + value: SudoEvent +} + +export interface Event_System { + __kind: 'System' + value: SystemEvent +} + +export interface Event_TransactionFees { + __kind: 'TransactionFees' + value: TransactionFeesEvent +} + +export interface Event_TransactionPayment { + __kind: 'TransactionPayment' + value: TransactionPaymentEvent +} + +export interface Event_Transporter { + __kind: 'Transporter' + value: TransporterEvent +} + +export interface Event_Utility { + __kind: 'Utility' + value: UtilityEvent +} + +export interface Event_Vesting { + __kind: 'Vesting' + value: VestingEvent +} + +/** + * The `Event` enum of this pallet + */ +export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated + +/** + * Claimed vesting. + */ +export interface VestingEvent_Claimed { + __kind: 'Claimed' + who: AccountId32 + amount: bigint +} + +/** + * Added new vesting schedule. + */ +export interface VestingEvent_VestingScheduleAdded { + __kind: 'VestingScheduleAdded' + from: AccountId32 + to: AccountId32 + vestingSchedule: VestingSchedule +} + +/** + * Updated vesting schedules. + */ +export interface VestingEvent_VestingSchedulesUpdated { + __kind: 'VestingSchedulesUpdated' + who: AccountId32 +} + +export interface VestingSchedule { + start: number + period: number + periodCount: number + perPeriod: bigint +} + +/** + * The `Event` enum of this pallet + */ +export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed + +/** + * Batch of dispatches completed fully with no error. + */ +export interface UtilityEvent_BatchCompleted { + __kind: 'BatchCompleted' +} + +/** + * Batch of dispatches completed but has errors. + */ +export interface UtilityEvent_BatchCompletedWithErrors { + __kind: 'BatchCompletedWithErrors' +} + +/** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + */ +export interface UtilityEvent_BatchInterrupted { + __kind: 'BatchInterrupted' + index: number + error: DispatchError +} + +/** + * A call was dispatched. + */ +export interface UtilityEvent_DispatchedAs { + __kind: 'DispatchedAs' + result: Result +} + +/** + * A single item within a Batch of dispatches has completed with no error. + */ +export interface UtilityEvent_ItemCompleted { + __kind: 'ItemCompleted' +} + +/** + * A single item within a Batch of dispatches has completed with error. + */ +export interface UtilityEvent_ItemFailed { + __kind: 'ItemFailed' + error: DispatchError +} + +export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable + +export interface DispatchError_Arithmetic { + __kind: 'Arithmetic' + value: ArithmeticError +} + +export interface DispatchError_BadOrigin { + __kind: 'BadOrigin' +} + +export interface DispatchError_CannotLookup { + __kind: 'CannotLookup' +} + +export interface DispatchError_ConsumerRemaining { + __kind: 'ConsumerRemaining' +} + +export interface DispatchError_Corruption { + __kind: 'Corruption' +} + +export interface DispatchError_Exhausted { + __kind: 'Exhausted' +} + +export interface DispatchError_Module { + __kind: 'Module' + value: ModuleError +} + +export interface DispatchError_NoProviders { + __kind: 'NoProviders' +} + +export interface DispatchError_Other { + __kind: 'Other' +} + +export interface DispatchError_RootNotAllowed { + __kind: 'RootNotAllowed' +} + +export interface DispatchError_Token { + __kind: 'Token' + value: TokenError +} + +export interface DispatchError_TooManyConsumers { + __kind: 'TooManyConsumers' +} + +export interface DispatchError_Transactional { + __kind: 'Transactional' + value: TransactionalError +} + +export interface DispatchError_Unavailable { + __kind: 'Unavailable' +} + +export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer + +export interface TransactionalError_LimitReached { + __kind: 'LimitReached' +} + +export interface TransactionalError_NoLayer { + __kind: 'NoLayer' +} + +export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported + +export interface TokenError_BelowMinimum { + __kind: 'BelowMinimum' +} + +export interface TokenError_Blocked { + __kind: 'Blocked' +} + +export interface TokenError_CannotCreate { + __kind: 'CannotCreate' +} + +export interface TokenError_CannotCreateHold { + __kind: 'CannotCreateHold' +} + +export interface TokenError_Frozen { + __kind: 'Frozen' +} + +export interface TokenError_FundsUnavailable { + __kind: 'FundsUnavailable' +} + +export interface TokenError_NotExpendable { + __kind: 'NotExpendable' +} + +export interface TokenError_OnlyProvider { + __kind: 'OnlyProvider' +} + +export interface TokenError_UnknownAsset { + __kind: 'UnknownAsset' +} + +export interface TokenError_Unsupported { + __kind: 'Unsupported' +} + +export interface ModuleError { + index: number + error: Bytes +} + +export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow + +export interface ArithmeticError_DivisionByZero { + __kind: 'DivisionByZero' +} + +export interface ArithmeticError_Overflow { + __kind: 'Overflow' +} + +export interface ArithmeticError_Underflow { + __kind: 'Underflow' +} + +/** + * Events emitted by pallet-transporter. + */ +export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful + +/** + * Emits when a given incoming transfer was successfully processed. + */ +export interface TransporterEvent_IncomingTransferSuccessful { + __kind: 'IncomingTransferSuccessful' + /** + * Source chain the transfer is coming from. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was failed on dst_chain. + */ +export interface TransporterEvent_OutgoingTransferFailed { + __kind: 'OutgoingTransferFailed' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] + /** + * Error from dst_chain endpoint. + */ + err: DispatchError +} + +/** + * Emits when there is a new outgoing transfer. + */ +export interface TransporterEvent_OutgoingTransferInitiated { + __kind: 'OutgoingTransferInitiated' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * Emits when a given outgoing transfer was successful. + */ +export interface TransporterEvent_OutgoingTransferSuccessful { + __kind: 'OutgoingTransferSuccessful' + /** + * Destination chain the transfer is bound to. + */ + chainId: ChainId + /** + * Id of the transfer. + */ + messageId: [bigint, bigint] +} + +/** + * The `Event` enum of this pallet + */ +export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid + +/** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + */ +export interface TransactionPaymentEvent_TransactionFeePaid { + __kind: 'TransactionFeePaid' + who: AccountId32 + actualFee: bigint + tip: bigint +} + +/** + * `pallet-transaction-fees` events + */ +export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees + +/** + * Storage fees. + */ +export interface TransactionFeesEvent_BlockFees { + __kind: 'BlockFees' + /** + * Block author that received the fees. + */ + who: AccountId32 + /** + * Amount of collected storage fees. + */ + storage: bigint + /** + * Amount of collected compute fees. + */ + compute: bigint + /** + * Amount of collected tips. + */ + tips: bigint +} + +/** + * Fees burned due to equivocated block author or rewards not enabled. + */ +export interface TransactionFeesEvent_BurnedBlockFees { + __kind: 'BurnedBlockFees' + /** + * Amount of burned storage fees. + */ + storage: bigint + /** + * Amount of burned compute fees. + */ + compute: bigint + /** + * Amount of burned tips. + */ + tips: bigint +} + +/** + * Event for the System pallet. + */ +export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized + +/** + * `:code` was updated. + */ +export interface SystemEvent_CodeUpdated { + __kind: 'CodeUpdated' +} + +/** + * An extrinsic failed. + */ +export interface SystemEvent_ExtrinsicFailed { + __kind: 'ExtrinsicFailed' + dispatchError: DispatchError + dispatchInfo: DispatchInfo +} + +/** + * An extrinsic completed successfully. + */ +export interface SystemEvent_ExtrinsicSuccess { + __kind: 'ExtrinsicSuccess' + dispatchInfo: DispatchInfo +} + +/** + * An account was reaped. + */ +export interface SystemEvent_KilledAccount { + __kind: 'KilledAccount' + account: AccountId32 +} + +/** + * A new account was created. + */ +export interface SystemEvent_NewAccount { + __kind: 'NewAccount' + account: AccountId32 +} + +/** + * On on-chain remark happened. + */ +export interface SystemEvent_Remarked { + __kind: 'Remarked' + sender: AccountId32 + hash: H256 +} + +/** + * An upgrade was authorized. + */ +export interface SystemEvent_UpgradeAuthorized { + __kind: 'UpgradeAuthorized' + codeHash: H256 + checkVersion: boolean +} + +export interface DispatchInfo { + weight: Weight + class: DispatchClass + paysFee: Pays +} + +export type Pays = Pays_No | Pays_Yes + +export interface Pays_No { + __kind: 'No' +} + +export interface Pays_Yes { + __kind: 'Yes' +} + +export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational + +export interface DispatchClass_Mandatory { + __kind: 'Mandatory' +} + +export interface DispatchClass_Normal { + __kind: 'Normal' +} + +export interface DispatchClass_Operational { + __kind: 'Operational' +} + +/** + * The `Event` enum of this pallet + */ +export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone + +/** + * The sudo key has been updated. + */ +export interface SudoEvent_KeyChanged { + __kind: 'KeyChanged' + /** + * The old sudo key (if one was previously set). + */ + old?: (AccountId32 | undefined) + /** + * The new sudo key (if one was set). + */ + new: AccountId32 +} + +/** + * The key was permanently removed. + */ +export interface SudoEvent_KeyRemoved { + __kind: 'KeyRemoved' +} + +/** + * A sudo call just took place. + */ +export interface SudoEvent_Sudid { + __kind: 'Sudid' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * A [sudo_as](Pallet::sudo_as) call just took place. + */ +export interface SudoEvent_SudoAsDone { + __kind: 'SudoAsDone' + /** + * The result of the call made by the sudo user. + */ + sudoResult: Result +} + +/** + * Events type. + */ +export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored + +/** + * Farmer vote. + */ +export interface SubspaceEvent_FarmerVote { + __kind: 'FarmerVote' + publicKey: Public + rewardAddress: AccountId32 + height: number + parentHash: H256 +} + +/** + * Segment header was stored in blockchain history. + */ +export interface SubspaceEvent_SegmentHeaderStored { + __kind: 'SegmentHeaderStored' + segmentHeader: SegmentHeader +} + +export type SegmentHeader = SegmentHeader_V0 + +export interface SegmentHeader_V0 { + __kind: 'V0' + segmentIndex: SegmentIndex + segmentCommitment: SegmentCommitment + prevSegmentHeaderHash: Bytes + lastArchivedBlock: LastArchivedBlock +} + +export interface LastArchivedBlock { + number: number + archivedProgress: ArchivedBlockProgress +} + +export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial + +export interface ArchivedBlockProgress_Complete { + __kind: 'Complete' +} + +export interface ArchivedBlockProgress_Partial { + __kind: 'Partial' + value: number +} + +export type SegmentCommitment = Bytes + +export type SegmentIndex = bigint + +export type Public = Bytes + +/** + * `pallet-rewards` events + */ +export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward + +/** + * Issued reward for the block author + */ +export interface RewardsEvent_BlockReward { + __kind: 'BlockReward' + blockAuthor: AccountId32 + reward: bigint +} + +/** + * Issued reward for the voter + */ +export interface RewardsEvent_VoteReward { + __kind: 'VoteReward' + voter: AccountId32 + reward: bigint +} + +/** + * Events type. + */ +export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence + +/** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + */ +export interface OffencesSubspaceEvent_Offence { + __kind: 'Offence' + kind: Bytes + timeslot: Bytes +} + +/** + * `pallet-messenger` events + */ +export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult + +/** + * Emits when a channel between two chains is closed. + */ +export interface MessengerEvent_ChannelClosed { + __kind: 'ChannelClosed' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chains is initiated. + */ +export interface MessengerEvent_ChannelInitiated { + __kind: 'ChannelInitiated' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a channel between two chain is open. + */ +export interface MessengerEvent_ChannelOpen { + __kind: 'ChannelOpen' + /** + * Foreign chain id this channel connects to. + */ + chainId: ChainId + /** + * Channel ID of the said channel. + */ + channelId: bigint +} + +/** + * Emits when a new inbox message is validated and added to Inbox. + */ +export interface MessengerEvent_InboxMessage { + __kind: 'InboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Inbox message. + */ +export interface MessengerEvent_InboxMessageResponse { + __kind: 'InboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits when a new message is added to the outbox. + */ +export interface MessengerEvent_OutboxMessage { + __kind: 'OutboxMessage' + chainId: ChainId + channelId: bigint + nonce: bigint +} + +/** + * Emits when a message response is available for Outbox message. + */ +export interface MessengerEvent_OutboxMessageResponse { + __kind: 'OutboxMessageResponse' + /** + * Destination chain ID. + */ + chainId: ChainId + /** + * Channel Is + */ + channelId: bigint + nonce: bigint +} + +/** + * Emits outbox message result. + */ +export interface MessengerEvent_OutboxMessageResult { + __kind: 'OutboxMessageResult' + chainId: ChainId + channelId: bigint + nonce: bigint + result: OutboxMessageResult +} + +export type OutboxMessageResult = Result + +/** + * The `Event` enum of this pallet + */ +export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake + +/** + * A domain bundle was included. + */ +export interface DomainsEvent_BundleStored { + __kind: 'BundleStored' + domainId: DomainId + bundleHash: H256 + bundleAuthor: bigint +} + +export interface DomainsEvent_DomainEpochCompleted { + __kind: 'DomainEpochCompleted' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_DomainInstantiated { + __kind: 'DomainInstantiated' + domainId: DomainId +} + +export interface DomainsEvent_DomainOperatorAllowListUpdated { + __kind: 'DomainOperatorAllowListUpdated' + domainId: DomainId +} + +export interface DomainsEvent_DomainRuntimeCreated { + __kind: 'DomainRuntimeCreated' + runtimeId: number + runtimeType: RuntimeType +} + +export interface DomainsEvent_DomainRuntimeUpgradeScheduled { + __kind: 'DomainRuntimeUpgradeScheduled' + runtimeId: number + scheduledAt: number +} + +export interface DomainsEvent_DomainRuntimeUpgraded { + __kind: 'DomainRuntimeUpgraded' + runtimeId: number +} + +export interface DomainsEvent_ForceDomainEpochTransition { + __kind: 'ForceDomainEpochTransition' + domainId: DomainId + completedEpochIndex: number +} + +export interface DomainsEvent_FraudProofProcessed { + __kind: 'FraudProofProcessed' + domainId: DomainId + newHeadReceiptNumber?: (number | undefined) +} + +export interface DomainsEvent_FundsUnlocked { + __kind: 'FundsUnlocked' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_OperatorDeregistered { + __kind: 'OperatorDeregistered' + operatorId: bigint +} + +export interface DomainsEvent_OperatorNominated { + __kind: 'OperatorNominated' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_OperatorRegistered { + __kind: 'OperatorRegistered' + operatorId: bigint + domainId: DomainId +} + +export interface DomainsEvent_OperatorRewarded { + __kind: 'OperatorRewarded' + operatorId: bigint + reward: bigint +} + +export interface DomainsEvent_OperatorSlashed { + __kind: 'OperatorSlashed' + operatorId: bigint + reason: SlashedReason +} + +export interface DomainsEvent_OperatorSwitchedDomain { + __kind: 'OperatorSwitchedDomain' + oldDomainId: DomainId + newDomainId: DomainId +} + +export interface DomainsEvent_OperatorTaxCollected { + __kind: 'OperatorTaxCollected' + operatorId: bigint + tax: bigint +} + +export interface DomainsEvent_OperatorUnlocked { + __kind: 'OperatorUnlocked' + operatorId: bigint +} + +export interface DomainsEvent_PreferredOperator { + __kind: 'PreferredOperator' + operatorId: bigint + nominatorId: AccountId32 +} + +export interface DomainsEvent_StorageFeeDeposited { + __kind: 'StorageFeeDeposited' + operatorId: bigint + nominatorId: AccountId32 + amount: bigint +} + +export interface DomainsEvent_WithdrewStake { + __kind: 'WithdrewStake' + operatorId: bigint + nominatorId: AccountId32 +} + +export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle + +export interface SlashedReason_BadExecutionReceipt { + __kind: 'BadExecutionReceipt' + value: H256 +} + +export interface SlashedReason_InvalidBundle { + __kind: 'InvalidBundle' + value: number +} + +/** + * The `Event` enum of this pallet + */ +export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw + +/** + * A balance was set by root. + */ +export interface BalancesEvent_BalanceSet { + __kind: 'BalanceSet' + who: AccountId32 + free: bigint +} + +/** + * Some amount was burned from an account. + */ +export interface BalancesEvent_Burned { + __kind: 'Burned' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was deposited (e.g. for transaction fees). + */ +export interface BalancesEvent_Deposit { + __kind: 'Deposit' + who: AccountId32 + amount: bigint +} + +/** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + */ +export interface BalancesEvent_DustLost { + __kind: 'DustLost' + account: AccountId32 + amount: bigint +} + +/** + * An account was created with some free balance. + */ +export interface BalancesEvent_Endowed { + __kind: 'Endowed' + account: AccountId32 + freeBalance: bigint +} + +/** + * Some balance was frozen. + */ +export interface BalancesEvent_Frozen { + __kind: 'Frozen' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was increased by `amount`, creating a credit to be balanced. + */ +export interface BalancesEvent_Issued { + __kind: 'Issued' + amount: bigint +} + +/** + * Some balance was locked. + */ +export interface BalancesEvent_Locked { + __kind: 'Locked' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was minted into an account. + */ +export interface BalancesEvent_Minted { + __kind: 'Minted' + who: AccountId32 + amount: bigint +} + +/** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + */ +export interface BalancesEvent_Rescinded { + __kind: 'Rescinded' + amount: bigint +} + +/** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + */ +export interface BalancesEvent_ReserveRepatriated { + __kind: 'ReserveRepatriated' + from: AccountId32 + to: AccountId32 + amount: bigint + destinationStatus: BalanceStatus +} + +/** + * Some balance was reserved (moved from free to reserved). + */ +export interface BalancesEvent_Reserved { + __kind: 'Reserved' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was restored into an account. + */ +export interface BalancesEvent_Restored { + __kind: 'Restored' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was removed from the account (e.g. for misbehavior). + */ +export interface BalancesEvent_Slashed { + __kind: 'Slashed' + who: AccountId32 + amount: bigint +} + +/** + * Some amount was suspended from an account (it can be restored later). + */ +export interface BalancesEvent_Suspended { + __kind: 'Suspended' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was thawed. + */ +export interface BalancesEvent_Thawed { + __kind: 'Thawed' + who: AccountId32 + amount: bigint +} + +/** + * The `TotalIssuance` was forcefully changed. + */ +export interface BalancesEvent_TotalIssuanceForced { + __kind: 'TotalIssuanceForced' + old: bigint + new: bigint +} + +/** + * Transfer succeeded. + */ +export interface BalancesEvent_Transfer { + __kind: 'Transfer' + from: AccountId32 + to: AccountId32 + amount: bigint +} + +/** + * Some balance was unlocked. + */ +export interface BalancesEvent_Unlocked { + __kind: 'Unlocked' + who: AccountId32 + amount: bigint +} + +/** + * Some balance was unreserved (moved from reserved to free). + */ +export interface BalancesEvent_Unreserved { + __kind: 'Unreserved' + who: AccountId32 + amount: bigint +} + +/** + * An account was upgraded. + */ +export interface BalancesEvent_Upgraded { + __kind: 'Upgraded' + who: AccountId32 +} + +/** + * Some amount was withdrawn from the account (e.g. for transaction fees). + */ +export interface BalancesEvent_Withdraw { + __kind: 'Withdraw' + who: AccountId32 + amount: bigint +} + +export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved + +export interface BalanceStatus_Free { + __kind: 'Free' +} + +export interface BalanceStatus_Reserved { + __kind: 'Reserved' +} + +export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization + +export interface Phase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + value: number +} + +export interface Phase_Finalization { + __kind: 'Finalization' +} + +export interface Phase_Initialization { + __kind: 'Initialization' +} + +export const EventRecord: sts.Type = sts.struct(() => { + return { + phase: Phase, + event: Event, + topics: sts.array(() => H256), + } +}) + +export const Event: sts.Type = sts.closedEnum(() => { + return { + Balances: BalancesEvent, + Domains: DomainsEvent, + Messenger: MessengerEvent, + OffencesSubspace: OffencesSubspaceEvent, + Rewards: RewardsEvent, + Subspace: SubspaceEvent, + Sudo: SudoEvent, + System: SystemEvent, + TransactionFees: TransactionFeesEvent, + TransactionPayment: TransactionPaymentEvent, + Transporter: TransporterEvent, + Utility: UtilityEvent, + Vesting: VestingEvent, + } +}) + +/** + * The `Event` enum of this pallet + */ +export const VestingEvent: sts.Type = sts.closedEnum(() => { + return { + Claimed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + VestingScheduleAdded: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + vestingSchedule: VestingSchedule, + }), + VestingSchedulesUpdated: sts.enumStruct({ + who: AccountId32, + }), + } +}) + +export const VestingSchedule: sts.Type = sts.struct(() => { + return { + start: sts.number(), + period: sts.number(), + periodCount: sts.number(), + perPeriod: sts.bigint(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const UtilityEvent: sts.Type = sts.closedEnum(() => { + return { + BatchCompleted: sts.unit(), + BatchCompletedWithErrors: sts.unit(), + BatchInterrupted: sts.enumStruct({ + index: sts.number(), + error: DispatchError, + }), + DispatchedAs: sts.enumStruct({ + result: sts.result(() => sts.unit(), () => DispatchError), + }), + ItemCompleted: sts.unit(), + ItemFailed: sts.enumStruct({ + error: DispatchError, + }), + } +}) + +export const DispatchError: sts.Type = sts.closedEnum(() => { + return { + Arithmetic: ArithmeticError, + BadOrigin: sts.unit(), + CannotLookup: sts.unit(), + ConsumerRemaining: sts.unit(), + Corruption: sts.unit(), + Exhausted: sts.unit(), + Module: ModuleError, + NoProviders: sts.unit(), + Other: sts.unit(), + RootNotAllowed: sts.unit(), + Token: TokenError, + TooManyConsumers: sts.unit(), + Transactional: TransactionalError, + Unavailable: sts.unit(), + } +}) + +export const TransactionalError: sts.Type = sts.closedEnum(() => { + return { + LimitReached: sts.unit(), + NoLayer: sts.unit(), + } +}) + +export const TokenError: sts.Type = sts.closedEnum(() => { + return { + BelowMinimum: sts.unit(), + Blocked: sts.unit(), + CannotCreate: sts.unit(), + CannotCreateHold: sts.unit(), + Frozen: sts.unit(), + FundsUnavailable: sts.unit(), + NotExpendable: sts.unit(), + OnlyProvider: sts.unit(), + UnknownAsset: sts.unit(), + Unsupported: sts.unit(), + } +}) + +export const ModuleError: sts.Type = sts.struct(() => { + return { + index: sts.number(), + error: sts.bytes(), + } +}) + +export const ArithmeticError: sts.Type = sts.closedEnum(() => { + return { + DivisionByZero: sts.unit(), + Overflow: sts.unit(), + Underflow: sts.unit(), + } +}) + +/** + * Events emitted by pallet-transporter. + */ +export const TransporterEvent: sts.Type = sts.closedEnum(() => { + return { + IncomingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferFailed: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + err: DispatchError, + }), + OutgoingTransferInitiated: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + OutgoingTransferSuccessful: sts.enumStruct({ + chainId: ChainId, + messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { + return { + TransactionFeePaid: sts.enumStruct({ + who: AccountId32, + actualFee: sts.bigint(), + tip: sts.bigint(), + }), + } +}) + +/** + * `pallet-transaction-fees` events + */ +export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { + return { + BlockFees: sts.enumStruct({ + who: AccountId32, + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + BurnedBlockFees: sts.enumStruct({ + storage: sts.bigint(), + compute: sts.bigint(), + tips: sts.bigint(), + }), + } +}) + +/** + * Event for the System pallet. + */ +export const SystemEvent: sts.Type = sts.closedEnum(() => { + return { + CodeUpdated: sts.unit(), + ExtrinsicFailed: sts.enumStruct({ + dispatchError: DispatchError, + dispatchInfo: DispatchInfo, + }), + ExtrinsicSuccess: sts.enumStruct({ + dispatchInfo: DispatchInfo, + }), + KilledAccount: sts.enumStruct({ + account: AccountId32, + }), + NewAccount: sts.enumStruct({ + account: AccountId32, + }), + Remarked: sts.enumStruct({ + sender: AccountId32, + hash: H256, + }), + UpgradeAuthorized: sts.enumStruct({ + codeHash: H256, + checkVersion: sts.boolean(), + }), + } +}) + +export const DispatchInfo: sts.Type = sts.struct(() => { + return { + weight: Weight, + class: DispatchClass, + paysFee: Pays, + } +}) + +export const Pays: sts.Type = sts.closedEnum(() => { + return { + No: sts.unit(), + Yes: sts.unit(), + } +}) + +export const DispatchClass: sts.Type = sts.closedEnum(() => { + return { + Mandatory: sts.unit(), + Normal: sts.unit(), + Operational: sts.unit(), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const SudoEvent: sts.Type = sts.closedEnum(() => { + return { + KeyChanged: sts.enumStruct({ + old: sts.option(() => AccountId32), + new: AccountId32, + }), + KeyRemoved: sts.unit(), + Sudid: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + SudoAsDone: sts.enumStruct({ + sudoResult: sts.result(() => sts.unit(), () => DispatchError), + }), + } +}) + +/** + * Events type. + */ +export const SubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + FarmerVote: sts.enumStruct({ + publicKey: Public, + rewardAddress: AccountId32, + height: sts.number(), + parentHash: H256, + }), + SegmentHeaderStored: sts.enumStruct({ + segmentHeader: SegmentHeader, + }), + } +}) + +export const SegmentHeader: sts.Type = sts.closedEnum(() => { + return { + V0: sts.enumStruct({ + segmentIndex: SegmentIndex, + segmentCommitment: SegmentCommitment, + prevSegmentHeaderHash: sts.bytes(), + lastArchivedBlock: LastArchivedBlock, + }), + } +}) + +export const LastArchivedBlock: sts.Type = sts.struct(() => { + return { + number: sts.number(), + archivedProgress: ArchivedBlockProgress, + } +}) + +export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { + return { + Complete: sts.unit(), + Partial: sts.number(), + } +}) + +export const SegmentCommitment = sts.bytes() + +export const SegmentIndex = sts.bigint() + +export const Public = sts.bytes() + +/** + * `pallet-rewards` events + */ +export const RewardsEvent: sts.Type = sts.closedEnum(() => { + return { + BlockReward: sts.enumStruct({ + blockAuthor: AccountId32, + reward: sts.bigint(), + }), + VoteReward: sts.enumStruct({ + voter: AccountId32, + reward: sts.bigint(), + }), + } +}) + +/** + * Events type. + */ +export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { + return { + Offence: sts.enumStruct({ + kind: sts.bytes(), + timeslot: sts.bytes(), + }), + } +}) + +/** + * `pallet-messenger` events + */ +export const MessengerEvent: sts.Type = sts.closedEnum(() => { + return { + ChannelClosed: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelInitiated: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + ChannelOpen: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + }), + InboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + InboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessage: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResponse: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + }), + OutboxMessageResult: sts.enumStruct({ + chainId: ChainId, + channelId: sts.bigint(), + nonce: sts.bigint(), + result: OutboxMessageResult, + }), + } +}) + +export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) + +/** + * The `Event` enum of this pallet + */ +export const DomainsEvent: sts.Type = sts.closedEnum(() => { + return { + BundleStored: sts.enumStruct({ + domainId: DomainId, + bundleHash: H256, + bundleAuthor: sts.bigint(), + }), + DomainEpochCompleted: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + DomainInstantiated: sts.enumStruct({ + domainId: DomainId, + }), + DomainOperatorAllowListUpdated: sts.enumStruct({ + domainId: DomainId, + }), + DomainRuntimeCreated: sts.enumStruct({ + runtimeId: sts.number(), + runtimeType: RuntimeType, + }), + DomainRuntimeUpgradeScheduled: sts.enumStruct({ + runtimeId: sts.number(), + scheduledAt: sts.number(), + }), + DomainRuntimeUpgraded: sts.enumStruct({ + runtimeId: sts.number(), + }), + ForceDomainEpochTransition: sts.enumStruct({ + domainId: DomainId, + completedEpochIndex: sts.number(), + }), + FraudProofProcessed: sts.enumStruct({ + domainId: DomainId, + newHeadReceiptNumber: sts.option(() => sts.number()), + }), + FundsUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + OperatorDeregistered: sts.enumStruct({ + operatorId: sts.bigint(), + }), + OperatorNominated: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + OperatorRegistered: sts.enumStruct({ + operatorId: sts.bigint(), + domainId: DomainId, + }), + OperatorRewarded: sts.enumStruct({ + operatorId: sts.bigint(), + reward: sts.bigint(), + }), + OperatorSlashed: sts.enumStruct({ + operatorId: sts.bigint(), + reason: SlashedReason, + }), + OperatorSwitchedDomain: sts.enumStruct({ + oldDomainId: DomainId, + newDomainId: DomainId, + }), + OperatorTaxCollected: sts.enumStruct({ + operatorId: sts.bigint(), + tax: sts.bigint(), + }), + OperatorUnlocked: sts.enumStruct({ + operatorId: sts.bigint(), + }), + PreferredOperator: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + StorageFeeDeposited: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + amount: sts.bigint(), + }), + WithdrewStake: sts.enumStruct({ + operatorId: sts.bigint(), + nominatorId: AccountId32, + }), + } +}) + +/** + * The `Event` enum of this pallet + */ +export const BalancesEvent: sts.Type = sts.closedEnum(() => { + return { + BalanceSet: sts.enumStruct({ + who: AccountId32, + free: sts.bigint(), + }), + Burned: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Deposit: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + DustLost: sts.enumStruct({ + account: AccountId32, + amount: sts.bigint(), + }), + Endowed: sts.enumStruct({ + account: AccountId32, + freeBalance: sts.bigint(), + }), + Frozen: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Issued: sts.enumStruct({ + amount: sts.bigint(), + }), + Locked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Minted: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Rescinded: sts.enumStruct({ + amount: sts.bigint(), + }), + ReserveRepatriated: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + destinationStatus: BalanceStatus, + }), + Reserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Restored: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Slashed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Suspended: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Thawed: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + TotalIssuanceForced: sts.enumStruct({ + old: sts.bigint(), + new: sts.bigint(), + }), + Transfer: sts.enumStruct({ + from: AccountId32, + to: AccountId32, + amount: sts.bigint(), + }), + Unlocked: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Unreserved: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + Upgraded: sts.enumStruct({ + who: AccountId32, + }), + Withdraw: sts.enumStruct({ + who: AccountId32, + amount: sts.bigint(), + }), + } +}) + +export const BalanceStatus: sts.Type = sts.closedEnum(() => { + return { + Free: sts.unit(), + Reserved: sts.unit(), + } +}) + +export const Phase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.number(), + Finalization: sts.unit(), + Initialization: sts.unit(), + } +}) + +export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { + return { + Accounts: sts.array(() => AccountId32), + Anyone: sts.unit(), + } +}) + +export const OperatorConfig: sts.Type = sts.struct(() => { + return { + signingKey: sts.bytes(), + minimumNominatorStake: sts.bigint(), + nominationTax: Percent, + } +}) + +export const Percent = sts.number() + +export interface OperatorConfig { + signingKey: Bytes + minimumNominatorStake: bigint + nominationTax: Percent +} + +export type Percent = number + +export const DomainId = sts.number() + +export const FraudProof: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + badReceiptHash: H256, + maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), + maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), + proof: FraudProofVariant, + } +}) + +export const FraudProofVariant: sts.Type = sts.closedEnum(() => { + return { + InvalidBlockFees: InvalidBlockFeesProof, + InvalidBundles: InvalidBundlesProof, + InvalidDomainBlockHash: InvalidDomainBlockHashProof, + InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, + InvalidStateTransition: InvalidStateTransitionProof, + InvalidTransfers: InvalidTransfersProof, + ValidBundle: ValidBundleProof, + } +}) + +export const ValidBundleProof: sts.Type = sts.struct(() => { + return { + bundleWithProof: OpaqueBundleWithProof, + } +}) + +export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { + return { + bundle: Bundle, + bundleIndex: sts.number(), + bundleStorageProof: SuccessfulBundlesProof, + } +}) + +export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface SuccessfulBundlesProof { + trieNodes: Bytes[] +} + +export interface OpaqueBundleWithProof { + bundle: Bundle + bundleIndex: number + bundleStorageProof: SuccessfulBundlesProof +} + +export interface Bundle { + sealedHeader: SealedBundleHeader + extrinsics: OpaqueExtrinsic[] +} + +export type OpaqueExtrinsic = Bytes + +export interface SealedBundleHeader { + header: BundleHeader + signature: Bytes +} + +export interface BundleHeader { + proofOfElection: ProofOfElection + receipt: ExecutionReceipt + estimatedBundleWeight: Weight + bundleExtrinsicsRoot: H256 +} + +export interface ProofOfElection { + domainId: DomainId + slotNumber: bigint + proofOfTime: PotOutput + vrfSignature: VrfSignature + operatorId: bigint + consensusBlockHash: H256 +} + +export interface VrfSignature { + preOutput: Bytes + proof: Bytes +} + +export type PotOutput = Bytes + +export interface ValidBundleProof { + bundleWithProof: OpaqueBundleWithProof +} + +export const InvalidTransfersProof: sts.Type = sts.struct(() => { + return { + storageProof: StorageProof, + } +}) + +export const StorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface StorageProof { + trieNodes: Bytes[] +} + +export interface InvalidTransfersProof { + storageProof: StorageProof +} + +export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { + return { + executionProof: StorageProof, + executionPhase: ExecutionPhase, + } +}) + +export const ExecutionPhase: sts.Type = sts.closedEnum(() => { + return { + ApplyExtrinsic: sts.enumStruct({ + extrinsicProof: StorageProof, + mismatch: ApplyExtrinsicMismatch, + }), + FinalizeBlock: sts.enumStruct({ + mismatch: FinalizeBlockMismatch, + }), + InitializeBlock: sts.unit(), + } +}) + +export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { + return { + Longer: sts.number(), + StateRoot: sts.unit(), + } +}) + +export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot + +export interface FinalizeBlockMismatch_Longer { + __kind: 'Longer' + value: number +} + +export interface FinalizeBlockMismatch_StateRoot { + __kind: 'StateRoot' +} + +export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { + return { + Shorter: sts.unit(), + StateRoot: sts.number(), + } +}) + +export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot + +export interface ApplyExtrinsicMismatch_Shorter { + __kind: 'Shorter' +} + +export interface ApplyExtrinsicMismatch_StateRoot { + __kind: 'StateRoot' + value: number +} + +export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock + +export interface ExecutionPhase_ApplyExtrinsic { + __kind: 'ApplyExtrinsic' + extrinsicProof: StorageProof + mismatch: ApplyExtrinsicMismatch +} + +export interface ExecutionPhase_FinalizeBlock { + __kind: 'FinalizeBlock' + mismatch: FinalizeBlockMismatch +} + +export interface ExecutionPhase_InitializeBlock { + __kind: 'InitializeBlock' +} + +export interface InvalidStateTransitionProof { + executionProof: StorageProof + executionPhase: ExecutionPhase +} + +export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { + return { + validBundleDigests: sts.array(() => ValidBundleDigest), + blockRandomnessProof: BlockRandomnessProof, + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, + } +}) + +export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { + return { + timestampProof: TimestampStorageProof, + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, + dynamicCostOfStorageProof: DynamicCostOfStorageProof, + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, + } +}) + +export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DomainChainsAllowlistUpdateStorageProof { + trieNodes: Bytes[] +} + +export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface ConsensusTransactionByteFeeProof { + trieNodes: Bytes[] +} + +export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DynamicCostOfStorageProof { + trieNodes: Bytes[] +} + +export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { + return { + blockDigest: BlockDigestProof, + newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), + } +}) + +export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface DomainRuntimeCodeProof { + trieNodes: Bytes[] +} + +export const BlockDigestProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface BlockDigestProof { + trieNodes: Bytes[] +} + +export interface MaybeDomainRuntimeUpgradedProof { + blockDigest: BlockDigestProof + newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) +} + +export const TimestampStorageProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface TimestampStorageProof { + trieNodes: Bytes[] +} + +export interface DomainInherentExtrinsicDataProof { + timestampProof: TimestampStorageProof + maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof + dynamicCostOfStorageProof: DynamicCostOfStorageProof + consensusChainByteFeeProof: ConsensusTransactionByteFeeProof + domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof +} + +export const BlockRandomnessProof: sts.Type = sts.struct(() => { + return { + trieNodes: sts.array(() => sts.bytes()), + } +}) + +export interface BlockRandomnessProof { + trieNodes: Bytes[] +} + +export const ValidBundleDigest: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), + } +}) + +export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { + return { + Data: sts.bytes(), + Hash: H256, + } +}) + +export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash + +export interface ExtrinsicDigest_Data { + __kind: 'Data' + value: Bytes +} + +export interface ExtrinsicDigest_Hash { + __kind: 'Hash' + value: H256 +} + +export interface ValidBundleDigest { + bundleIndex: number + bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] +} + +export interface InvalidExtrinsicsRootProof { + validBundleDigests: ValidBundleDigest[] + blockRandomnessProof: BlockRandomnessProof + domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof +} + +export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { + return { + digestStorageProof: StorageProof, + } +}) + +export interface InvalidDomainBlockHashProof { + digestStorageProof: StorageProof +} + +export const InvalidBundlesProof: sts.Type = sts.struct(() => { + return { + bundleIndex: sts.number(), + invalidBundleType: InvalidBundleType, + isTrueInvalidFraudProof: sts.boolean(), + proofData: InvalidBundlesProofData, + } +}) + +export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { + return { + Bundle: OpaqueBundleWithProof, + BundleAndExecution: sts.enumStruct({ + bundleWithProof: OpaqueBundleWithProof, + executionProof: StorageProof, + }), + Extrinsic: StorageProof, + } +}) + +export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic + +export interface InvalidBundlesProofData_Bundle { + __kind: 'Bundle' + value: OpaqueBundleWithProof +} + +export interface InvalidBundlesProofData_BundleAndExecution { + __kind: 'BundleAndExecution' + bundleWithProof: OpaqueBundleWithProof + executionProof: StorageProof +} + +export interface InvalidBundlesProofData_Extrinsic { + __kind: 'Extrinsic' + value: StorageProof +} + +export interface InvalidBundlesProof { + bundleIndex: number + invalidBundleType: InvalidBundleType + isTrueInvalidFraudProof: boolean + proofData: InvalidBundlesProofData +} + +export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { + return { + storageProof: StorageProof, + } +}) + +export interface InvalidBlockFeesProof { + storageProof: StorageProof +} + +export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle + +export interface FraudProofVariant_InvalidBlockFees { + __kind: 'InvalidBlockFees' + value: InvalidBlockFeesProof +} + +export interface FraudProofVariant_InvalidBundles { + __kind: 'InvalidBundles' + value: InvalidBundlesProof +} + +export interface FraudProofVariant_InvalidDomainBlockHash { + __kind: 'InvalidDomainBlockHash' + value: InvalidDomainBlockHashProof +} + +export interface FraudProofVariant_InvalidExtrinsicsRoot { + __kind: 'InvalidExtrinsicsRoot' + value: InvalidExtrinsicsRootProof +} + +export interface FraudProofVariant_InvalidStateTransition { + __kind: 'InvalidStateTransition' + value: InvalidStateTransitionProof +} + +export interface FraudProofVariant_InvalidTransfers { + __kind: 'InvalidTransfers' + value: InvalidTransfersProof +} + +export interface FraudProofVariant_ValidBundle { + __kind: 'ValidBundle' + value: ValidBundleProof +} + +export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { + return { + mmrProof: ConsensusChainMmrLeafProof, + domainRuntimeCodeProof: DomainRuntimeCodeProof, + } +}) + +export interface DomainRuntimeCodeAt { + mmrProof: ConsensusChainMmrLeafProof + domainRuntimeCodeProof: DomainRuntimeCodeProof +} + +export interface ConsensusChainMmrLeafProof { + consensusBlockNumber: number + consensusBlockHash: H256 + opaqueMmrLeaf: EncodableOpaqueLeaf + proof: Proof +} + +export interface Proof { + leafIndices: bigint[] + leafCount: bigint + items: H256[] +} + +export type EncodableOpaqueLeaf = Bytes + +export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { + return { + consensusBlockNumber: sts.number(), + consensusBlockHash: H256, + opaqueMmrLeaf: EncodableOpaqueLeaf, + proof: Proof, + } +}) + +export const Proof: sts.Type = sts.struct(() => { + return { + leafIndices: sts.array(() => sts.bigint()), + leafCount: sts.bigint(), + items: sts.array(() => H256), + } +}) + +export const EncodableOpaqueLeaf = sts.bytes() + +export interface FraudProof { + domainId: DomainId + badReceiptHash: H256 + maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) + maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) + proof: FraudProofVariant +} + +export const Bundle: sts.Type = sts.struct(() => { + return { + sealedHeader: SealedBundleHeader, + extrinsics: sts.array(() => OpaqueExtrinsic), + } +}) + +export const OpaqueExtrinsic = sts.bytes() + +export const SealedBundleHeader: sts.Type = sts.struct(() => { + return { + header: BundleHeader, + signature: sts.bytes(), + } +}) + +export const BundleHeader: sts.Type = sts.struct(() => { + return { + proofOfElection: ProofOfElection, + receipt: ExecutionReceipt, + estimatedBundleWeight: Weight, + bundleExtrinsicsRoot: H256, + } +}) + +export const ProofOfElection: sts.Type = sts.struct(() => { + return { + domainId: DomainId, + slotNumber: sts.bigint(), + proofOfTime: PotOutput, + vrfSignature: VrfSignature, + operatorId: sts.bigint(), + consensusBlockHash: H256, + } +}) + +export const VrfSignature: sts.Type = sts.struct(() => { + return { + preOutput: sts.bytes(), + proof: sts.bytes(), + } +}) + +export const PotOutput = sts.bytes() + +export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { + return { + Decrease: sts.unit(), + Increase: sts.unit(), + } +}) + +export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase + +export interface AdjustmentDirection_Decrease { + __kind: 'Decrease' +} + +export interface AdjustmentDirection_Increase { + __kind: 'Increase' +} + +export const SlashedReason: sts.Type = sts.closedEnum(() => { + return { + BadExecutionReceipt: H256, + InvalidBundle: sts.number(), + } +}) + +export const RuntimeType: sts.Type = sts.closedEnum(() => { + return { + AutoId: sts.unit(), + Evm: sts.unit(), + } +}) diff --git a/indexers/accounts-squid/src/utils/cache.ts b/indexers/accounts-squid/src/utils/cache.ts new file mode 100644 index 000000000..831960f03 --- /dev/null +++ b/indexers/accounts-squid/src/utils/cache.ts @@ -0,0 +1,104 @@ +import { Store } from '@subsquid/typeorm-store' +import { Entity } from '@subsquid/typeorm-store/src/store' +import { + Account, + SlackMessage, + Transfer +} from '../model' +import type { Ctx } from '../processor' + +export type PermanentCache = { + slackMessages: Map +} + +export type TemporaryCache = { + accounts: Map + transfers: Map +} + +export type LastSlackMsg = `lastSlackMsg` +export const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + +type InternalKeyStore = LastSlackMsg + +type CacheManager = { + isModified: boolean + internalKeyStore: Map +} + +export type Cache = PermanentCache & TemporaryCache & CacheManager + +export const initPermanentCache: PermanentCache = { + slackMessages: new Map(), +} + +export const initTemporaryCache: TemporaryCache = { + accounts: new Map(), + transfers: new Map(), +} + +export const initCacheManager: CacheManager = { + isModified: false, + internalKeyStore: new Map(), +} + +export const initCache: Cache = { + ...initPermanentCache, + ...initTemporaryCache, + ...initCacheManager, +} + +export const load = async (ctx: Ctx): Promise => { + const [slackMessages] = await Promise.all([ + ctx.store.find(SlackMessage), + ]) + + console.log( + '\x1b[32mLoaded in cache:\x1b[0m', + slackMessages.length + ' slackMessages', + ) + + return { + ...initCache, + slackMessages: new Map(slackMessages.map((s) => [s.id, s])), + } +} + +const saveEntry = async (ctx: Ctx, cache: Cache, name: keyof Cache) => { + try { + const entity = cache[name] as unknown as Map + if (entity.size === 0) return + + await ctx.store.save(Array.from(entity.values())) + } catch (e) { + console.error(`Failed to save ${name} with error:`, e) + } +} + +const logEntry = (name: string, entry: Map) => + entry.size > 0 ? entry.size + ' ' + name + ', ' : '' + +export const save = async (ctx: Ctx, cache: Cache) => { + // If the cache is not modified, skip saving + if (!cache.isModified) return + + let logPerm = logEntry('slackMessages', cache.slackMessages) + + let logTemp = logEntry('accounts', cache.accounts) + logTemp += logEntry('transfers', cache.transfers) + + console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) + console.log(' and ', logTemp, '\n') + + await Promise.all( + Object.keys(cache).map((k) => + !Object.keys(initCacheManager).includes(k) ? saveEntry(ctx, cache, k as keyof Cache) : null, + ), + ) + + // Clear the cache for entries not needed for reference + cache.accounts.clear() + cache.transfers.clear() + + cache.isModified = false +} diff --git a/indexers/accounts-squid/src/utils/index.ts b/indexers/accounts-squid/src/utils/index.ts new file mode 100644 index 000000000..840dc9c24 --- /dev/null +++ b/indexers/accounts-squid/src/utils/index.ts @@ -0,0 +1,40 @@ +import { DEFAULT_SS58_FORMAT } from '@autonomys/auto-utils' +import { codec } from '@subsquid/ss58' +import { Store } from '@subsquid/typeorm-store' +import { decodeHex } from '@subsquid/util-internal-hex' +import type { CtxBlock, ProcessorContext } from '../processor' + +export const hexToAccount = (hex: string): string => { + try { + return codec(DEFAULT_SS58_FORMAT).encode(decodeHex(hex)) + } catch (error) { + console.error('Failed to convert hex to account:', error) + return '' + } +} + +export const getCallSigner = ( + call: ProcessorContext['blocks'][0]['extrinsics'][0]['call'], +): string => { + try { + return hexToAccount((call as any).origin.value.value) + } catch (error) { + console.error('Failed to get call signer:', error) + return '' + } +} + +export const getBlockNumber = (block: CtxBlock): number => block.header.height + +export const getTimestamp = (block: CtxBlock): Date => new Date(block.header.timestamp ?? 0) + +export const logBlock = (blocks: CtxBlock[]): string => { + const from = getBlockNumber(blocks[0]) + const to = getBlockNumber(blocks[blocks.length - 1]) + console.log( + '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', + 'From ' + from, + 'to ' + to + ' (' + (to - from) + ' blocks)', + ) + return 'Processing ' + blocks.length + ' blocks, ' + 'From ' + from + 'to ' + to + ' (' + (to - from) + ' blocks)' +} \ No newline at end of file diff --git a/indexers/accounts-squid/src/utils/slack.ts b/indexers/accounts-squid/src/utils/slack.ts new file mode 100644 index 000000000..37ef864a7 --- /dev/null +++ b/indexers/accounts-squid/src/utils/slack.ts @@ -0,0 +1,77 @@ +interface SlackBlock { + type: string + text: { + type: string + text: string + } +} + +interface SlackPayload { + channel: string + text: string + blocks: SlackBlock[] + ts?: string +} + +export const sendSlackMessage = async ( + message: string, + blocks: SlackBlock[], + messageIdToEdit?: string, +): Promise => { + const token = process.env.SLACK_TOKEN + const conversationId = process.env.SLACK_CONVERSATION_ID || '' + const url = messageIdToEdit + ? 'https://slack.com/api/chat.update' + : 'https://slack.com/api/chat.postMessage' + + const payload: SlackPayload = { + channel: conversationId, + text: message, + blocks: blocks, + } + + if (messageIdToEdit) { + payload.ts = messageIdToEdit + } + + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify(payload), + }) + + const data = await response.json() + + if (!data.ok) { + throw new Error(data.error) + } + + return data.ts || undefined + } catch (e) { + console.error('Error sending slack message', e) + } +} + +export const sendSlackStatsMessage = async (text: string, messageIdToEdit?: string) => { + const blocks: SlackBlock[] = [ + { + type: 'header', + text: { + type: 'plain_text', + text: 'Consensus Indexer Stats', + }, + }, + { + type: 'section', + text: { + type: 'mrkdwn', + text, + }, + }, + ] + return await sendSlackMessage('Last block processed', blocks, messageIdToEdit) +} \ No newline at end of file diff --git a/indexers/accounts-squid/tsconfig.json b/indexers/accounts-squid/tsconfig.json new file mode 100644 index 000000000..f1f63d568 --- /dev/null +++ b/indexers/accounts-squid/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es2020", + "outDir": "lib", + "rootDir": "src", + "strict": true, + "declaration": false, + "sourceMap": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "skipLibCheck": true + }, + "include": ["src"], + "exclude": [ + "node_modules" + ] +} diff --git a/indexers/accounts-squid/typegen.json b/indexers/accounts-squid/typegen.json new file mode 100644 index 000000000..e4f3aeb3d --- /dev/null +++ b/indexers/accounts-squid/typegen.json @@ -0,0 +1,48 @@ +{ + "outDir": "src/types", + "specVersions": "gemini3h.jsonl", + "pallets": { + "Balances": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "Subspace": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "Domains": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "Rewards": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "TransactionFees": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "TransactionPayment": { + "events": true, + "calls": true, + "storage": true, + "constants": true + }, + "System": { + "events": true, + "calls": true, + "storage": true, + "constants": true + } + } +} \ No newline at end of file From 572595def90ee0f8211b2b1c66a2341590822fb1 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:55:31 -0400 Subject: [PATCH 36/42] add account db --- indexers/db/docker-entrypoint-initdb.d/init-db.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/indexers/db/docker-entrypoint-initdb.d/init-db.sql b/indexers/db/docker-entrypoint-initdb.d/init-db.sql index a8697e5ab..5ada6384d 100644 --- a/indexers/db/docker-entrypoint-initdb.d/init-db.sql +++ b/indexers/db/docker-entrypoint-initdb.d/init-db.sql @@ -1,3 +1,4 @@ +CREATE DATABASE accounts; CREATE DATABASE consensus; CREATE DATABASE leaderboard; CREATE DATABASE staking; \ No newline at end of file From 6bf4d5fb70d08b7fc234ce6fcef56ff5bb50a6d5 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Mon, 26 Aug 2024 14:57:14 -0400 Subject: [PATCH 37/42] simplify and cleanup consensus squid --- indexers/consensus-squid/.env | 3 + ...41714619-Data.js => 1724418872585-Data.js} | 74 ++---------------- indexers/consensus-squid/schema.graphql | 54 ++----------- indexers/consensus-squid/squid.yaml | 6 +- indexers/consensus-squid/src/blocks/index.ts | 69 ++++++----------- .../consensus-squid/src/events/account.ts | 26 ------- indexers/consensus-squid/src/events/code.ts | 24 ------ indexers/consensus-squid/src/events/index.ts | 48 ++++-------- .../consensus-squid/src/extrinsics/index.ts | 39 +--------- indexers/consensus-squid/src/processor.ts | 5 -- .../consensus-squid/src/storage/account.ts | 35 --------- indexers/consensus-squid/src/storage/call.ts | 37 --------- indexers/consensus-squid/src/storage/event.ts | 1 - .../consensus-squid/src/storage/extrinsic.ts | 1 - indexers/consensus-squid/src/storage/index.ts | 7 +- indexers/consensus-squid/src/storage/log.ts | 30 -------- .../consensus-squid/src/storage/logKind.ts | 33 -------- .../consensus-squid/src/storage/metadata.ts | 33 -------- .../consensus-squid/src/storage/transfer.ts | 35 --------- indexers/consensus-squid/src/utils/cache.ts | 52 ++++--------- indexers/consensus-squid/src/utils/index.ts | 18 +---- indexers/consensus-squid/src/utils/slack.ts | 77 +++++++++++++++++++ 22 files changed, 157 insertions(+), 550 deletions(-) rename indexers/consensus-squid/db/migrations/{1724341714619-Data.js => 1724418872585-Data.js} (53%) delete mode 100644 indexers/consensus-squid/src/events/account.ts delete mode 100644 indexers/consensus-squid/src/events/code.ts delete mode 100644 indexers/consensus-squid/src/storage/account.ts delete mode 100644 indexers/consensus-squid/src/storage/call.ts delete mode 100644 indexers/consensus-squid/src/storage/log.ts delete mode 100644 indexers/consensus-squid/src/storage/logKind.ts delete mode 100644 indexers/consensus-squid/src/storage/metadata.ts delete mode 100644 indexers/consensus-squid/src/storage/transfer.ts create mode 100644 indexers/consensus-squid/src/utils/slack.ts diff --git a/indexers/consensus-squid/.env b/indexers/consensus-squid/.env index 201b910ed..a56841d1d 100644 --- a/indexers/consensus-squid/.env +++ b/indexers/consensus-squid/.env @@ -8,3 +8,6 @@ GQL_PORT=4350 RPC_CONSENSUS_HTTP=wss://rpc-0.gemini-3h.subspace.network/ws CONSENSUS_GATEWAY="https://v2.archive.subsquid.io/network/gemini-3h" RPC_CONSENSUS_HTTP="wss://rpc-squids.gemini-3h.subspace.network/ws" + +SLACK_TOKEN="xoxb-" +SLACK_CONVERSATION_ID="C0" \ No newline at end of file diff --git a/indexers/consensus-squid/db/migrations/1724341714619-Data.js b/indexers/consensus-squid/db/migrations/1724418872585-Data.js similarity index 53% rename from indexers/consensus-squid/db/migrations/1724341714619-Data.js rename to indexers/consensus-squid/db/migrations/1724418872585-Data.js index 89f0f6abd..91191691a 100644 --- a/indexers/consensus-squid/db/migrations/1724341714619-Data.js +++ b/indexers/consensus-squid/db/migrations/1724418872585-Data.js @@ -1,5 +1,5 @@ -module.exports = class Data1724341714619 { - name = 'Data1724341714619' +module.exports = class Data1724418872585 { + name = 'Data1724418872585' async up(db) { await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) @@ -16,33 +16,13 @@ module.exports = class Data1724341714619 { await db.query(`CREATE INDEX "IDX_8cc9a89327e353743cdbdeaf62" ON "event_name" ("name") `) await db.query(`CREATE INDEX "IDX_308f89b7bd77129d674c746b9f" ON "event_name" ("created_at") `) await db.query(`CREATE INDEX "IDX_138702642fef52ba4a89946294" ON "event_name" ("updated_at") `) - await db.query(`CREATE TABLE "log_kind" ("id" character varying NOT NULL, "kind" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_bcc5da35c9fa4e56dda4840b983" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ce2f3195a2f7faedbab1705f0b" ON "log_kind" ("kind") `) - await db.query(`CREATE INDEX "IDX_4461ddd62e3d675e860adccbfa" ON "log_kind" ("created_at") `) - await db.query(`CREATE INDEX "IDX_a1445134448d50ea2af168cc20" ON "log_kind" ("updated_at") `) - await db.query(`CREATE TABLE "metadata" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "block_hash" text NOT NULL, "spec_name" text NOT NULL, "metadata" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_56b22355e89941b9792c04ab176" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7d87619d6ebb96bef0757436e6" ON "metadata" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_579fa06e1ce8b2151d784362c1" ON "metadata" ("block_hash") `) - await db.query(`CREATE INDEX "IDX_2d02620b857df828b0408eb7c0" ON "metadata" ("spec_name") `) - await db.query(`CREATE INDEX "IDX_924200e1ccaf7127fc54163fe4" ON "metadata" ("created_at") `) - await db.query(`CREATE INDEX "IDX_7ec3ae9bcc8a2c85b6c60df0e7" ON "metadata" ("updated_at") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) - await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) - await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_58367bdb03b7f41ade3b09f26a" ON "transfer" ("date") `) - await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "owner" text NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) await db.query(`CREATE INDEX "IDX_9f4b8d83ef6c743c966fd0ea49" ON "block" ("owner") `) await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) await db.query(`CREATE INDEX "IDX_20d6346bd56643a5262eaddced" ON "block" ("date") `) - await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "signer" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "signer" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) await db.query(`CREATE INDEX "IDX_001ddf290faf765f9dfd9154d3" ON "extrinsic" ("signer") `) @@ -52,7 +32,7 @@ module.exports = class Data1724341714619 { await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) await db.query(`CREATE INDEX "IDX_91c0732a0bf8e06976cf832d34" ON "extrinsic" ("date") `) await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) + await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) await db.query(`CREATE INDEX "IDX_77b76886d64fa0304db94dd4d9" ON "event" ("account_id") `) @@ -62,17 +42,8 @@ module.exports = class Data1724341714619 { await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) await db.query(`CREATE INDEX "IDX_158ebc26716f3fc2042cc9dd2e" ON "event" ("date") `) await db.query(`CREATE INDEX "IDX_f0e0f3ea08224cc8c0ef1c7ae8" ON "event" ("created_at") `) - await db.query(`CREATE TABLE "call" ("id" character varying NOT NULL, "name" text NOT NULL, "success" boolean NOT NULL, "args" text NOT NULL, "block_id" text NOT NULL, "extrinsic_id" text NOT NULL, "error" text NOT NULL, "account_id" text NOT NULL, "parent" text NOT NULL, "pos" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_2098af0169792a34f9cfdd39c47" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_8b212022b7428232091e2f8aa5" ON "call" ("name") `) - await db.query(`CREATE INDEX "IDX_44040cb9d4a26689b9c8863226" ON "call" ("account_id") `) - await db.query(`CREATE INDEX "IDX_a032945f45cacda2d30f4286df" ON "call" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_81967fe06abefb07692bcc1b59" ON "call" ("date") `) - await db.query(`CREATE INDEX "IDX_b06c9b51d1172fba69e828673a" ON "call" ("created_at") `) - await db.query(`CREATE TABLE "log" ("id" character varying NOT NULL, "kind" text NOT NULL, "value" text NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_110007d6221b41e46fcada62a9" ON "log" ("kind") `) - await db.query(`CREATE INDEX "IDX_7d3f5ac68148194ee7ced3032e" ON "log" ("block_id") `) - await db.query(`CREATE INDEX "IDX_08b9587d9698ee1d046a916483" ON "log" ("account_id") `) - await db.query(`CREATE INDEX "IDX_a64ab7c456e914191342cfd215" ON "log" ("created_at") `) + await db.query(`CREATE TABLE "slack_message" ("id" character varying NOT NULL, "message_id" text NOT NULL, CONSTRAINT "PK_0f63f6886c966a139786d88b66a" PRIMARY KEY ("id"))`) + await db.query(`CREATE INDEX "IDX_aa83d548510c4e1b4ecd8d0caa" ON "slack_message" ("message_id") `) } async down(db) { @@ -90,26 +61,6 @@ module.exports = class Data1724341714619 { await db.query(`DROP INDEX "public"."IDX_8cc9a89327e353743cdbdeaf62"`) await db.query(`DROP INDEX "public"."IDX_308f89b7bd77129d674c746b9f"`) await db.query(`DROP INDEX "public"."IDX_138702642fef52ba4a89946294"`) - await db.query(`DROP TABLE "log_kind"`) - await db.query(`DROP INDEX "public"."IDX_ce2f3195a2f7faedbab1705f0b"`) - await db.query(`DROP INDEX "public"."IDX_4461ddd62e3d675e860adccbfa"`) - await db.query(`DROP INDEX "public"."IDX_a1445134448d50ea2af168cc20"`) - await db.query(`DROP TABLE "metadata"`) - await db.query(`DROP INDEX "public"."IDX_7d87619d6ebb96bef0757436e6"`) - await db.query(`DROP INDEX "public"."IDX_579fa06e1ce8b2151d784362c1"`) - await db.query(`DROP INDEX "public"."IDX_2d02620b857df828b0408eb7c0"`) - await db.query(`DROP INDEX "public"."IDX_924200e1ccaf7127fc54163fe4"`) - await db.query(`DROP INDEX "public"."IDX_7ec3ae9bcc8a2c85b6c60df0e7"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) - await db.query(`DROP TABLE "transfer"`) - await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) - await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) - await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) - await db.query(`DROP INDEX "public"."IDX_58367bdb03b7f41ade3b09f26a"`) - await db.query(`DROP INDEX "public"."IDX_086e57d995900e69b54046e257"`) await db.query(`DROP TABLE "block"`) await db.query(`DROP INDEX "public"."IDX_bce676e2b005104ccb768495db"`) await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) @@ -136,16 +87,7 @@ module.exports = class Data1724341714619 { await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) await db.query(`DROP INDEX "public"."IDX_158ebc26716f3fc2042cc9dd2e"`) await db.query(`DROP INDEX "public"."IDX_f0e0f3ea08224cc8c0ef1c7ae8"`) - await db.query(`DROP TABLE "call"`) - await db.query(`DROP INDEX "public"."IDX_8b212022b7428232091e2f8aa5"`) - await db.query(`DROP INDEX "public"."IDX_44040cb9d4a26689b9c8863226"`) - await db.query(`DROP INDEX "public"."IDX_a032945f45cacda2d30f4286df"`) - await db.query(`DROP INDEX "public"."IDX_81967fe06abefb07692bcc1b59"`) - await db.query(`DROP INDEX "public"."IDX_b06c9b51d1172fba69e828673a"`) - await db.query(`DROP TABLE "log"`) - await db.query(`DROP INDEX "public"."IDX_110007d6221b41e46fcada62a9"`) - await db.query(`DROP INDEX "public"."IDX_7d3f5ac68148194ee7ced3032e"`) - await db.query(`DROP INDEX "public"."IDX_08b9587d9698ee1d046a916483"`) - await db.query(`DROP INDEX "public"."IDX_a64ab7c456e914191342cfd215"`) + await db.query(`DROP TABLE "slack_message"`) + await db.query(`DROP INDEX "public"."IDX_aa83d548510c4e1b4ecd8d0caa"`) } } diff --git a/indexers/consensus-squid/schema.graphql b/indexers/consensus-squid/schema.graphql index ed4fe0f70..16b1ac06b 100644 --- a/indexers/consensus-squid/schema.graphql +++ b/indexers/consensus-squid/schema.graphql @@ -33,37 +33,6 @@ type LogKind @entity { updatedAt: Int! @index } -type Metadata @entity { - id: ID! @index - sortId: Int! @index - blockHash: String! @index - specName: String! @index - metadata: String! - createdAt: Int! @index - updatedAt: Int! @index -} - -type Account @entity { - id: ID! @index - nonce: BigInt! - free: BigInt! - reserved: BigInt! - total: BigInt @index - createdAt: Int! @index - updatedAt: Int! @index -} - -type Transfer @entity { - id: ID! @index - from: String! @index - to: String! @index - value: BigInt! - fee: BigInt! - timestamp: BigInt! @index - date: DateTime! @index - createdAt: Int! @index -} - type Block @entity { id: ID! @index height: BigInt! @index @@ -96,7 +65,6 @@ type Extrinsic @entity { blockId: String! @index blockHeight: BigInt! @index pos: Int! - args: String! timestamp: BigInt! @index date: DateTime! @index createdAt: Int! @index @@ -108,7 +76,6 @@ type Event @entity { name: String! @index phase: String! pos: Int! - args: String! blockId: String! @index accountId: String! @index blockHeight: BigInt! @index @@ -119,22 +86,6 @@ type Event @entity { createdAt: Int! @index } -type Call @entity { - id: ID! @index - name: String! @index - success: Boolean! - args: String! - blockId: String! - extrinsicId: String! - error: String! - accountId: String! @index - parent: String! - pos: Int! - timestamp: BigInt! @index - date: DateTime! @index - createdAt: Int! @index -} - type Log @entity { id: ID! @index kind: String! @index @@ -143,3 +94,8 @@ type Log @entity { accountId: String! @index createdAt: Int! @index } + +type SlackMessage @entity { + id: ID! @index + messageId: String! @index +} \ No newline at end of file diff --git a/indexers/consensus-squid/squid.yaml b/indexers/consensus-squid/squid.yaml index 1c51cb9ac..1697cebff 100644 --- a/indexers/consensus-squid/squid.yaml +++ b/indexers/consensus-squid/squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: consensus-squid -version: 5 +version: 7 description: Autonomys - Astral - Consensus Indexer build: deploy: @@ -18,6 +18,8 @@ deploy: env: CONSENSUS_GATEWAY: ${{ secrets.CONSENSUS_GATEWAY }} RPC_CONSENSUS_HTTP: ${{ secrets.RPC_CONSENSUS_ENDPOINT }} + SLACK_TOKEN: ${{ secrets.SLACK_TOKEN }} + SLACK_CONVERSATION_ID: ${{ secrets.SLACK_CONVERSATION_ID }} api: cmd: - sqd @@ -27,7 +29,7 @@ scale: dedicated: true addons: postgres: - storage: 100G + storage: 2000G profile: large processor: profile: medium diff --git a/indexers/consensus-squid/src/blocks/index.ts b/indexers/consensus-squid/src/blocks/index.ts index 37ea29681..59be4f9ea 100644 --- a/indexers/consensus-squid/src/blocks/index.ts +++ b/indexers/consensus-squid/src/blocks/index.ts @@ -1,40 +1,43 @@ import type { ApiPromise } from '@autonomys/auto-utils' import { Store } from '@subsquid/typeorm-store' import { processExtrinsics } from '../extrinsics' -import type { Ctx, CtxBlock } from '../processor' +import { SlackMessage } from '../model' +import type { Ctx } from '../processor' import { - getOrCreateAccount, getOrCreateBlock, - getOrCreateLog, - getOrCreateLogKind, } from '../storage' import { solutionRanges } from '../types/subspace/storage' -import { digest } from '../types/system/storage' import { calcSpacePledged, getBlockAuthor, - getBlockNumber, getHistorySize, logBlock, } from '../utils' -import { Cache, load, save } from '../utils/cache' +import { Cache, LastSlackMsg, load, save } from '../utils/cache' +import { sendSlackStatsMessage } from '../utils/slack' export async function processBlocks(ctx: Ctx, api: ApiPromise) { let cache: Cache = await load(ctx) - logBlock(ctx.blocks) + + const logMsg = logBlock(ctx.blocks) + const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + const lastSlackMsg = cache.slackMessages.get(lastSlackMsgKey) + const slackMsg = await sendSlackStatsMessage(logMsg, lastSlackMsg ? lastSlackMsg.messageId : undefined) + if (slackMsg) cache.slackMessages.set(lastSlackMsgKey, new SlackMessage({ + id: lastSlackMsgKey, + messageId: slackMsg, + })) + for (let block of ctx.blocks) { - console.log('Processing block:', block.header.id) - const solutionRang = await solutionRanges.v0.get(block.header) + const [solutionRang, blockchainSize, owner] = await Promise.all([ + solutionRanges.v0.get(block.header), + getHistorySize(ctx, block, api), + getBlockAuthor(block, api), + ]) const spacePledged = solutionRang ? calcSpacePledged(solutionRang.current) : calcSpacePledged(solutionRanges.v0.getDefault(block.header).current) - const blockchainSize = await getHistorySize(ctx, block, api) - const owner = await getBlockAuthor(block, api) - if (owner) { - const account = getOrCreateAccount(cache, block, owner) - cache.accounts.set(account.id, account) - } const _block = getOrCreateBlock(cache, block, { id: block.header.id, height: BigInt(block.header.height ?? 0), @@ -52,38 +55,10 @@ export async function processBlocks(ctx: Ctx, api: ApiPromise) { }) cache.blocks.set(_block.id, _block) - try { - const _digest = await digest.v0.get(block.header) - if (_digest) { - _digest.logs.forEach((log, index) => { - const logKind = getOrCreateLogKind(cache, block, log.__kind, { - kind: log.__kind, - }) - logKind.count++ - logKind.updatedAt = getBlockNumber(block) - cache.logKinds.set(logKind.id, logKind) - - const _log = getOrCreateLog(cache, block, `${block.header.id}-${index}`, { - kind: log.__kind, - value: (log as any).value, - blockId: block.header.id, - accountId: owner ?? '', - }) - cache.logs.set(_log.id, _log) - }) - } - } catch (error) { - console.error('Failed to process log:', error) - } + cache = processExtrinsics(cache, block, block.extrinsics, owner ?? '') - cache.isModified = true - - cache = await processBlock(cache, api, block, owner ?? '') + if (block.header.height % 100 === 0) await save(ctx, cache) } await save(ctx, cache) -} - -async function processBlock(cache: Cache, api: ApiPromise, block: CtxBlock, blockOwner: string) { - return await processExtrinsics(cache, api, block, block.extrinsics, blockOwner) -} +} \ No newline at end of file diff --git a/indexers/consensus-squid/src/events/account.ts b/indexers/consensus-squid/src/events/account.ts deleted file mode 100644 index 0316fd60c..000000000 --- a/indexers/consensus-squid/src/events/account.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { CtxBlock, CtxEvent } from '../processor' -import { getOrCreateAccount, getOrCreateTransfer } from '../storage' -import { hexToAccount } from '../utils' -import { Cache } from '../utils/cache' - -export function processTransferEvent(cache: Cache, block: CtxBlock, event: CtxEvent) { - const from = hexToAccount(event.args.from) - const to = hexToAccount(event.args.to) - const amount = BigInt(event.args.amount) - - const fromAccount = getOrCreateAccount(cache, block, from) - const toAccount = getOrCreateAccount(cache, block, to) - cache.accounts.set(fromAccount.id, fromAccount) - cache.accounts.set(toAccount.id, toAccount) - - const transfer = getOrCreateTransfer(cache, block, event.id + '-from', { - from, - to, - value: amount, - }) - cache.transfers.set(transfer.id, transfer) - - cache.isModified = true - - return cache -} diff --git a/indexers/consensus-squid/src/events/code.ts b/indexers/consensus-squid/src/events/code.ts deleted file mode 100644 index e8badb6a4..000000000 --- a/indexers/consensus-squid/src/events/code.ts +++ /dev/null @@ -1,24 +0,0 @@ -import type { ApiPromise } from '@autonomys/auto-utils' -import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' -import { getOrCreateMetadata } from '../storage' -import { Cache } from '../utils/cache' - -export function processCodeUpdatedEvent( - cache: Cache, - apiAt: ApiPromise, - block: CtxBlock, - extrinsic: CtxExtrinsic, - event: CtxEvent, -) { - console.log('block', block) - const metadataId = block.header._runtime - console.log('metadataId', metadataId) - const metadata = getOrCreateMetadata(cache, block, '') - console.log('metadata', metadata) - - cache.metadata.set(metadata.id, metadata) - - cache.isModified = true - - return cache -} diff --git a/indexers/consensus-squid/src/events/index.ts b/indexers/consensus-squid/src/events/index.ts index 8a307e5c7..91ac57069 100644 --- a/indexers/consensus-squid/src/events/index.ts +++ b/indexers/consensus-squid/src/events/index.ts @@ -1,43 +1,36 @@ -import type { ApiPromise } from '@autonomys/auto-utils' import type { CtxBlock, CtxEvent, CtxExtrinsic } from '../processor' import { getOrCreateEvent, getOrCreateEventName, getOrCreateModule } from '../storage' -import { events } from '../types' import { getBlockNumber, getCallSigner } from '../utils' import { Cache } from '../utils/cache' -import { processTransferEvent } from './account' -import { processCodeUpdatedEvent } from './code' -export async function processEvents( +export function processEvents( cache: Cache, - api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, blockOwner: string, ) { + const blockHeight = BigInt(block.header.height ?? 0) + const blockId = block.header.id + const timestamp = BigInt(block.header.timestamp ?? 0) + const phase = (extrinsic as any)?.phase ?? BigInt(0) + for (let [index, event] of extrinsic.events.entries()) { try { const _event = getOrCreateEvent(cache, block, event.id, { indexInBlock: index, name: event.name, extrinsicId: extrinsic.id, - accountId: - extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, - blockHeight: BigInt(block.header.height ?? 0), - blockId: block.header.id, + accountId: extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, + blockHeight, + blockId, callId: extrinsic.call?.id ?? '', - phase: (extrinsic as any)?.phase ?? BigInt(0), - // pos: Number((extrinsic as any)?.pos ?? 0), - timestamp: BigInt(block.header.timestamp ?? 0), + phase, + timestamp, }) - try { - _event.args = JSON.stringify(extrinsic.call?.args ?? {}) - } catch (error) { - console.error('Failed to process event:', error) - } cache.events.set(_event.id, _event) cache.isModified = true - cache = await processEvent(cache, api, block, extrinsic, event) + cache = processEvent(cache, block, event) } catch (error) { console.error('Failed to process event:', error) } @@ -45,11 +38,9 @@ export async function processEvents( return cache } -async function processEvent( +function processEvent( cache: Cache, - api: ApiPromise, block: CtxBlock, - extrinsic: CtxExtrinsic, event: CtxEvent, ) { const module = getOrCreateModule(cache, block, event.name) @@ -63,14 +54,5 @@ async function processEvent( cache.eventNames.set(eventName.id, eventName) cache.isModified = true - switch (event.name) { - case events.balances.transfer.name: - return processTransferEvent(cache, block, event) - - case events.system.codeUpdated.name: - return processCodeUpdatedEvent(cache, api, block, extrinsic, event) - - default: - return cache - } -} + return cache +} \ No newline at end of file diff --git a/indexers/consensus-squid/src/extrinsics/index.ts b/indexers/consensus-squid/src/extrinsics/index.ts index 334dba3b3..4cea41868 100644 --- a/indexers/consensus-squid/src/extrinsics/index.ts +++ b/indexers/consensus-squid/src/extrinsics/index.ts @@ -1,8 +1,6 @@ -import type { ApiPromise } from '@autonomys/auto-utils' import { processEvents } from '../events' import type { CtxBlock, CtxExtrinsic } from '../processor' import { - getOrCreateCall, getOrCreateExtrinsic, getOrCreateExtrinsicName, getOrCreateModule, @@ -10,18 +8,14 @@ import { import { getBlockNumber, getCallSigner } from '../utils' import { Cache } from '../utils/cache' -export async function processExtrinsics( +export function processExtrinsics( cache: Cache, - api: ApiPromise, block: CtxBlock, extrinsics: CtxExtrinsic[], blockOwner: string, ) { for (let [index, extrinsic] of extrinsics.entries()) { try { - // console.log('Processing extrinsic:', extrinsic.id) - // console.log('extrinsic:', extrinsic) - // console.log('extrinsic.call:', extrinsic.call) const _extrinsic = getOrCreateExtrinsic(cache, block, extrinsic.id, { hash: extrinsic.hash, indexInBlock: index, @@ -37,42 +31,20 @@ export async function processExtrinsics( // pos: Number((extrinsic as any)?.pos ?? 0), timestamp: BigInt(block.header.timestamp ?? 0), }) - try { - _extrinsic.args = JSON.stringify(extrinsic.call?.args ?? {}) - } catch (error) { - console.error('Failed to process extrinsic:', error) - } cache.extrinsics.set(_extrinsic.id, _extrinsic) - if (extrinsic.call) { - const _call = getOrCreateCall(cache, block, extrinsic.call.id, { - name: extrinsic.call.name, - success: extrinsic.success, - args: JSON.stringify(extrinsic.call?.args ?? {}), - blockId: block.header.id, - extrinsicId: extrinsic.id, - error: '', - accountId: - extrinsic.call && extrinsic.call.origin ? getCallSigner(extrinsic.call) : blockOwner, - pos: Number((extrinsic as any)?.pos ?? 0), - timestamp: BigInt(block.header.timestamp ?? 0), - }) - cache.calls.set(_call.id, _call) - } - cache.isModified = true } catch (error) { console.error('Failed to process extrinsic:', error) } - cache = await processExtrinsic(cache, api, block, extrinsic, blockOwner) + cache = processExtrinsic(cache, block, extrinsic, blockOwner) } return cache } -export async function processExtrinsic( +export function processExtrinsic( cache: Cache, - api: ApiPromise, block: CtxBlock, extrinsic: CtxExtrinsic, blockOwner: string, @@ -90,8 +62,5 @@ export async function processExtrinsic( cache.isModified = true } - switch (extrinsic.call?.name) { - default: - return await processEvents(cache, api, block, extrinsic, blockOwner) - } + return processEvents(cache, block, extrinsic, blockOwner) } diff --git a/indexers/consensus-squid/src/processor.ts b/indexers/consensus-squid/src/processor.ts index 18a863a41..f715800a5 100644 --- a/indexers/consensus-squid/src/processor.ts +++ b/indexers/consensus-squid/src/processor.ts @@ -19,11 +19,6 @@ export const processor = new SubstrateBatchProcessor() .setBlockRange({ from: 0, }) - .addCall({ - events: true, - stack: true, - extrinsic: true, - }) .addEvent({ call: true, stack: true, diff --git a/indexers/consensus-squid/src/storage/account.ts b/indexers/consensus-squid/src/storage/account.ts deleted file mode 100644 index 4f7870e65..000000000 --- a/indexers/consensus-squid/src/storage/account.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Account } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' -import { Cache } from '../utils/cache' - -export const createAccount = ( - block: CtxBlock, - address: string, - props: Partial = {}, -): Account => { - const blockNumber = getBlockNumber(block) - return new Account({ - id: address, - nonce: props.nonce ?? BigInt(0), - free: props.free ?? BigInt(0), - reserved: props.reserved ?? BigInt(0), - total: props.total ?? BigInt(0), - ...props, - createdAt: blockNumber, - updatedAt: blockNumber, - }) -} - -export const getOrCreateAccount = ( - cache: Cache, - block: CtxBlock, - address: string, - props: Partial = {}, -): Account => { - const account = cache.accounts.get(address) - - if (!account) return createAccount(block, address, props) - - return account -} diff --git a/indexers/consensus-squid/src/storage/call.ts b/indexers/consensus-squid/src/storage/call.ts deleted file mode 100644 index af5cffb76..000000000 --- a/indexers/consensus-squid/src/storage/call.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Call } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber, getTimestamp } from '../utils' -import { Cache } from '../utils/cache' - -export const createCall = (block: CtxBlock, id: string, props: Partial = {}): Call => { - const blockNumber = getBlockNumber(block) - return new Call({ - id: id, - name: props.name ?? '', - success: props.success ?? false, - args: props.args ?? '', - blockId: props.blockId ?? '', - extrinsicId: props.extrinsicId ?? '', - error: props.error ?? '', - accountId: props.accountId ?? '', - parent: props.parent ?? '', - pos: props.pos ?? 0, - timestamp: props.timestamp ?? BigInt(0), - date: props.date ?? getTimestamp(block), - createdAt: blockNumber, - ...props, - }) -} - -export const getOrCreateCall = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): Call => { - const call = cache.calls.get(id) - - if (!call) return createCall(block, id, props) - - return call -} diff --git a/indexers/consensus-squid/src/storage/event.ts b/indexers/consensus-squid/src/storage/event.ts index 2c5f532c3..1728b3980 100644 --- a/indexers/consensus-squid/src/storage/event.ts +++ b/indexers/consensus-squid/src/storage/event.ts @@ -11,7 +11,6 @@ export const createEvent = (block: CtxBlock, id: string, props: Partial = name: props.name ?? '', phase: props.phase ?? '', pos: props.pos ?? 0, - args: props.args ?? '', blockId: props.blockId ?? '', accountId: props.accountId ?? '', blockHeight: props.blockHeight ?? BigInt(0), diff --git a/indexers/consensus-squid/src/storage/extrinsic.ts b/indexers/consensus-squid/src/storage/extrinsic.ts index 3a6257d09..33f3127fe 100644 --- a/indexers/consensus-squid/src/storage/extrinsic.ts +++ b/indexers/consensus-squid/src/storage/extrinsic.ts @@ -24,7 +24,6 @@ export const createExtrinsic = ( blockId: props.blockId ?? '', blockHeight: props.blockHeight ?? BigInt(0), pos: props.pos ?? 0, - args: props.args ?? '', timestamp: props.timestamp ?? BigInt(0), date: props.date ?? getTimestamp(block), createdAt: blockNumber, diff --git a/indexers/consensus-squid/src/storage/index.ts b/indexers/consensus-squid/src/storage/index.ts index bf92355e1..f3bb98af9 100644 --- a/indexers/consensus-squid/src/storage/index.ts +++ b/indexers/consensus-squid/src/storage/index.ts @@ -1,12 +1,7 @@ -export * from './account' export * from './block' -export * from './call' export * from './event' export * from './eventName' export * from './extrinsic' export * from './extrinsicName' -export * from './log' -export * from './logKind' -export * from './metadata' export * from './module' -export * from './transfer' + diff --git a/indexers/consensus-squid/src/storage/log.ts b/indexers/consensus-squid/src/storage/log.ts deleted file mode 100644 index b70849786..000000000 --- a/indexers/consensus-squid/src/storage/log.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Log } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber } from '../utils' -import { Cache } from '../utils/cache' - -export const createLog = (block: CtxBlock, id: string, props: Partial = {}): Log => { - const blockNumber = getBlockNumber(block) - return new Log({ - id: id, - kind: props.kind ?? '', - value: props.value ?? '', - blockId: props.blockId ?? '', - accountId: props.accountId ?? '', - createdAt: blockNumber, - ...props, - }) -} - -export const getOrCreateLog = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): Log => { - const log = cache.logs.get(id) - - if (!log) return createLog(block, id, props) - - return log -} diff --git a/indexers/consensus-squid/src/storage/logKind.ts b/indexers/consensus-squid/src/storage/logKind.ts deleted file mode 100644 index 1dc9acd2d..000000000 --- a/indexers/consensus-squid/src/storage/logKind.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { LogKind } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber, stringUID } from '../utils' -import { Cache } from '../utils/cache' - -export const createLogKind = ( - block: CtxBlock, - id: string, - props: Partial = {}, -): LogKind => { - const blockNumber = getBlockNumber(block) - return new LogKind({ - id: stringUID(id), - kind: props.kind ?? '', - count: props.count ?? 0, - createdAt: blockNumber, - updatedAt: blockNumber, - ...props, - }) -} - -export const getOrCreateLogKind = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): LogKind => { - const logKind = cache.logKinds.get(stringUID(id)) - - if (!logKind) return createLogKind(block, id, props) - - return logKind -} diff --git a/indexers/consensus-squid/src/storage/metadata.ts b/indexers/consensus-squid/src/storage/metadata.ts deleted file mode 100644 index 39e9ec133..000000000 --- a/indexers/consensus-squid/src/storage/metadata.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Metadata } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber, stringUID } from '../utils' -import { Cache } from '../utils/cache' - -export const createMetadata = ( - block: CtxBlock, - metadataId: string, - props: Partial, -): Metadata => - new Metadata({ - id: stringUID(metadataId), - sortId: typeof metadataId === 'string' ? parseInt(metadataId) : metadataId, - blockHash: '', - specName: '', - metadata: '', - ...props, - createdAt: getBlockNumber(block), - updatedAt: getBlockNumber(block), - }) - -export const getOrCreateMetadata = ( - cache: Cache, - block: CtxBlock, - metadataId: string, - props: Partial = {}, -): Metadata => { - const metadata = cache.metadata.get(stringUID(metadataId)) - - if (!metadata) return createMetadata(block, metadataId, props) - - return metadata -} diff --git a/indexers/consensus-squid/src/storage/transfer.ts b/indexers/consensus-squid/src/storage/transfer.ts deleted file mode 100644 index 9371ad02f..000000000 --- a/indexers/consensus-squid/src/storage/transfer.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Transfer } from '../model' -import type { CtxBlock } from '../processor' -import { getBlockNumber, getTimestamp } from '../utils' -import { Cache } from '../utils/cache' - -export const createTransfer = ( - block: CtxBlock, - id: string, - props: Partial = {}, -): Transfer => { - const blockNumber = getBlockNumber(block) - return new Transfer({ - id: id, - from: props.from ?? '', - to: props.to ?? '', - value: props.value ?? BigInt(0), - fee: props.fee ?? BigInt(0), - timestamp: props.timestamp ?? BigInt(0), - date: props.date ?? getTimestamp(block), - createdAt: blockNumber, - }) -} - -export const getOrCreateTransfer = ( - cache: Cache, - block: CtxBlock, - id: string, - props: Partial = {}, -): Transfer => { - const transfer = cache.transfers.get(id) - - if (!transfer) return createTransfer(block, id, props) - - return transfer -} diff --git a/indexers/consensus-squid/src/utils/cache.ts b/indexers/consensus-squid/src/utils/cache.ts index 33b4cef56..eb0d392f5 100644 --- a/indexers/consensus-squid/src/utils/cache.ts +++ b/indexers/consensus-squid/src/utils/cache.ts @@ -1,18 +1,13 @@ import { Store } from '@subsquid/typeorm-store' import { Entity } from '@subsquid/typeorm-store/src/store' import { - Account, Block, - Call, Event, EventName, Extrinsic, ExtrinsicName, - Log, - LogKind, - Metadata, Module, - Transfer, + SlackMessage, } from '../model' import type { Ctx } from '../processor' @@ -21,24 +16,23 @@ export type PermanentCache = { eventNames: Map extrinsicNames: Map - metadata: Map - - accounts: Map + slackMessages: Map } export type TemporaryCache = { blocks: Map extrinsics: Map events: Map - calls: Map - logs: Map - logKinds: Map - - transfers: Map } +export type LastSlackMsg = `lastSlackMsg` +export const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' + +type InternalKeyStore = LastSlackMsg + type CacheManager = { isModified: boolean + internalKeyStore: Map } export type Cache = PermanentCache & TemporaryCache & CacheManager @@ -47,22 +41,18 @@ export const initPermanentCache: PermanentCache = { modules: new Map(), eventNames: new Map(), extrinsicNames: new Map(), - metadata: new Map(), - accounts: new Map(), + slackMessages: new Map(), } export const initTemporaryCache: TemporaryCache = { blocks: new Map(), extrinsics: new Map(), events: new Map(), - calls: new Map(), - logs: new Map(), - logKinds: new Map(), - transfers: new Map(), } export const initCacheManager: CacheManager = { isModified: false, + internalKeyStore: new Map(), } export const initCache: Cache = { @@ -72,12 +62,11 @@ export const initCache: Cache = { } export const load = async (ctx: Ctx): Promise => { - const [modules, eventNames, extrinsicNames, accounts, metadata] = await Promise.all([ + const [modules, eventNames, extrinsicNames, slackMessages] = await Promise.all([ ctx.store.find(Module), ctx.store.find(EventName), ctx.store.find(ExtrinsicName), - ctx.store.find(Account), - ctx.store.find(Metadata), + ctx.store.find(SlackMessage), ]) console.log( @@ -85,8 +74,7 @@ export const load = async (ctx: Ctx): Promise => { modules.length + ' modules, ', eventNames.length + ' eventNames, ', extrinsicNames.length + ' extrinsicNames, ', - accounts.length + ' accounts', - metadata.length + ' metadata', + slackMessages.length + ' slackMessages', ) return { @@ -94,8 +82,7 @@ export const load = async (ctx: Ctx): Promise => { modules: new Map(modules.map((m) => [m.id, m])), eventNames: new Map(eventNames.map((e) => [e.id, e])), extrinsicNames: new Map(extrinsicNames.map((e) => [e.id, e])), - accounts: new Map(accounts.map((a) => [a.id, a])), - metadata: new Map(metadata.map((m) => [m.id, m])), + slackMessages: new Map(slackMessages.map((s) => [s.id, s])), } } @@ -120,16 +107,11 @@ export const save = async (ctx: Ctx, cache: Cache) => { let logPerm = logEntry('modules', cache.modules) logPerm += logEntry('eventNames', cache.eventNames) logPerm += logEntry('extrinsicNames', cache.extrinsicNames) - logPerm += logEntry('accounts', cache.accounts) - logPerm += logEntry('metadata', cache.metadata) + logPerm += logEntry('slackMessages', cache.slackMessages) let logTemp = logEntry('blocks', cache.blocks) logTemp += logEntry('extrinsics', cache.extrinsics) logTemp += logEntry('events', cache.events) - logTemp += logEntry('calls', cache.calls) - logTemp += logEntry('logs', cache.logs) - logTemp += logEntry('logKinds', cache.logKinds) - logTemp += logEntry('transfers', cache.transfers) console.log('\x1b[34mSaving in database:\x1b[0m', logPerm) console.log(' and ', logTemp, '\n') @@ -144,10 +126,6 @@ export const save = async (ctx: Ctx, cache: Cache) => { cache.blocks.clear() cache.extrinsics.clear() cache.events.clear() - cache.calls.clear() - cache.logs.clear() - cache.logKinds.clear() - cache.transfers.clear() cache.isModified = false } diff --git a/indexers/consensus-squid/src/utils/index.ts b/indexers/consensus-squid/src/utils/index.ts index e3afd48b5..51cf6c725 100644 --- a/indexers/consensus-squid/src/utils/index.ts +++ b/indexers/consensus-squid/src/utils/index.ts @@ -44,14 +44,15 @@ export const splitModuleAndId = (extrinsicName: string): [string, string] => { export const stringUID = (id: string): string => id.toLowerCase() -export const logBlock = (blocks: CtxBlock[]): void => { +export const logBlock = (blocks: CtxBlock[]): string => { const from = getBlockNumber(blocks[0]) const to = getBlockNumber(blocks[blocks.length - 1]) - return console.log( + console.log( '\x1b[33mProcessing ' + blocks.length + ' blocks\x1b[0m', 'From ' + from, 'to ' + to + ' (' + (to - from) + ' blocks)', ) + return 'Processing ' + blocks.length + ' blocks, ' + 'From ' + from + 'to ' + to + ' (' + (to - from) + ' blocks)' } export const solutionRangeToSectors = (solutionRange: bigint): bigint => { @@ -81,19 +82,6 @@ export const calcHistorySize = (segmentsCount: number): bigint => { return PIECE_SIZE * PIECES_IN_SEGMENT * segmentsCountBigInt } -export const decodeLog = (value: null | Uint8Array | Uint8Array[]) => { - if (!value) return null - - if (Array.isArray(value)) { - return { - engine: value[0].toString(), - data: toHex(value[1]), - } - } - - return { data: toHex(value) } -} - interface Solution extends Struct { readonly public_key: AccountId32 readonly reward_address: AccountId32 diff --git a/indexers/consensus-squid/src/utils/slack.ts b/indexers/consensus-squid/src/utils/slack.ts new file mode 100644 index 000000000..37ef864a7 --- /dev/null +++ b/indexers/consensus-squid/src/utils/slack.ts @@ -0,0 +1,77 @@ +interface SlackBlock { + type: string + text: { + type: string + text: string + } +} + +interface SlackPayload { + channel: string + text: string + blocks: SlackBlock[] + ts?: string +} + +export const sendSlackMessage = async ( + message: string, + blocks: SlackBlock[], + messageIdToEdit?: string, +): Promise => { + const token = process.env.SLACK_TOKEN + const conversationId = process.env.SLACK_CONVERSATION_ID || '' + const url = messageIdToEdit + ? 'https://slack.com/api/chat.update' + : 'https://slack.com/api/chat.postMessage' + + const payload: SlackPayload = { + channel: conversationId, + text: message, + blocks: blocks, + } + + if (messageIdToEdit) { + payload.ts = messageIdToEdit + } + + try { + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json; charset=utf-8', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify(payload), + }) + + const data = await response.json() + + if (!data.ok) { + throw new Error(data.error) + } + + return data.ts || undefined + } catch (e) { + console.error('Error sending slack message', e) + } +} + +export const sendSlackStatsMessage = async (text: string, messageIdToEdit?: string) => { + const blocks: SlackBlock[] = [ + { + type: 'header', + text: { + type: 'plain_text', + text: 'Consensus Indexer Stats', + }, + }, + { + type: 'section', + text: { + type: 'mrkdwn', + text, + }, + }, + ] + return await sendSlackMessage('Last block processed', blocks, messageIdToEdit) +} \ No newline at end of file From fe783d2c96fe5d319ecfa839bfebfcf1b6b6c56d Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 27 Aug 2024 07:46:21 -0400 Subject: [PATCH 38/42] remove generated types and models from commit --- indexers/accounts-squid/.gitignore | 3 +- indexers/accounts-squid/src/model/index.ts | 1 - .../src/types/balances/calls.ts | 119 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 312 -- .../src/types/balances/storage.ts | 253 -- indexers/accounts-squid/src/types/calls.ts | 5 - .../accounts-squid/src/types/constants.ts | 7 - .../accounts-squid/src/types/domains/calls.ts | 278 -- .../src/types/domains/constants.ts | 213 -- .../src/types/domains/events.ts | 250 -- .../src/types/domains/storage.ts | 1226 ------ indexers/accounts-squid/src/types/events.ts | 7 - indexers/accounts-squid/src/types/index.ts | 8 - .../accounts-squid/src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - indexers/accounts-squid/src/types/storage.ts | 7 - .../src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- indexers/accounts-squid/src/types/support.ts | 142 - .../accounts-squid/src/types/system/calls.ts | 146 - .../src/types/system/constants.ts | 66 - .../accounts-squid/src/types/system/events.ts | 94 - .../src/types/system/storage.ts | 405 -- .../src/types/transaction-fees/constants.ts | 43 - .../src/types/transaction-fees/events.ts | 54 - .../src/types/transaction-fees/storage.ts | 86 - .../types/transaction-payment/constants.ts | 31 - .../src/types/transaction-payment/events.ts | 18 - .../src/types/transaction-payment/storage.ts | 22 - indexers/accounts-squid/src/types/v0.ts | 3281 ----------------- indexers/accounts-squid/src/types/v1.ts | 2706 -------------- indexers/accounts-squid/src/types/v3.ts | 205 - indexers/accounts-squid/src/types/v5.ts | 2724 -------------- 38 files changed, 2 insertions(+), 13612 deletions(-) delete mode 100644 indexers/accounts-squid/src/model/index.ts delete mode 100644 indexers/accounts-squid/src/types/balances/calls.ts delete mode 100644 indexers/accounts-squid/src/types/balances/constants.ts delete mode 100644 indexers/accounts-squid/src/types/balances/events.ts delete mode 100644 indexers/accounts-squid/src/types/balances/storage.ts delete mode 100644 indexers/accounts-squid/src/types/calls.ts delete mode 100644 indexers/accounts-squid/src/types/constants.ts delete mode 100644 indexers/accounts-squid/src/types/domains/calls.ts delete mode 100644 indexers/accounts-squid/src/types/domains/constants.ts delete mode 100644 indexers/accounts-squid/src/types/domains/events.ts delete mode 100644 indexers/accounts-squid/src/types/domains/storage.ts delete mode 100644 indexers/accounts-squid/src/types/events.ts delete mode 100644 indexers/accounts-squid/src/types/index.ts delete mode 100644 indexers/accounts-squid/src/types/rewards/calls.ts delete mode 100644 indexers/accounts-squid/src/types/rewards/constants.ts delete mode 100644 indexers/accounts-squid/src/types/rewards/events.ts delete mode 100644 indexers/accounts-squid/src/types/rewards/storage.ts delete mode 100644 indexers/accounts-squid/src/types/storage.ts delete mode 100644 indexers/accounts-squid/src/types/subspace/calls.ts delete mode 100644 indexers/accounts-squid/src/types/subspace/constants.ts delete mode 100644 indexers/accounts-squid/src/types/subspace/events.ts delete mode 100644 indexers/accounts-squid/src/types/subspace/storage.ts delete mode 100644 indexers/accounts-squid/src/types/support.ts delete mode 100644 indexers/accounts-squid/src/types/system/calls.ts delete mode 100644 indexers/accounts-squid/src/types/system/constants.ts delete mode 100644 indexers/accounts-squid/src/types/system/events.ts delete mode 100644 indexers/accounts-squid/src/types/system/storage.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-fees/constants.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-fees/events.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-fees/storage.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-payment/constants.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-payment/events.ts delete mode 100644 indexers/accounts-squid/src/types/transaction-payment/storage.ts delete mode 100644 indexers/accounts-squid/src/types/v0.ts delete mode 100644 indexers/accounts-squid/src/types/v1.ts delete mode 100644 indexers/accounts-squid/src/types/v3.ts delete mode 100644 indexers/accounts-squid/src/types/v5.ts diff --git a/indexers/accounts-squid/.gitignore b/indexers/accounts-squid/.gitignore index 263e67075..256442309 100644 --- a/indexers/accounts-squid/.gitignore +++ b/indexers/accounts-squid/.gitignore @@ -8,4 +8,5 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/accounts-squid/src/model/index.ts b/indexers/accounts-squid/src/model/index.ts deleted file mode 100644 index 99735f641..000000000 --- a/indexers/accounts-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './generated' diff --git a/indexers/accounts-squid/src/types/balances/calls.ts b/indexers/accounts-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/accounts-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/balances/constants.ts b/indexers/accounts-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/accounts-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/accounts-squid/src/types/balances/events.ts b/indexers/accounts-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/accounts-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/balances/storage.ts b/indexers/accounts-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/accounts-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/accounts-squid/src/types/calls.ts b/indexers/accounts-squid/src/types/calls.ts deleted file mode 100644 index 92374c8bf..000000000 --- a/indexers/accounts-squid/src/types/calls.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as system from './system/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as domains from './domains/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/accounts-squid/src/types/constants.ts b/indexers/accounts-squid/src/types/constants.ts deleted file mode 100644 index bac116dd0..000000000 --- a/indexers/accounts-squid/src/types/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as transactionPayment from './transaction-payment/constants' -export * as domains from './domains/constants' diff --git a/indexers/accounts-squid/src/types/domains/calls.ts b/indexers/accounts-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/accounts-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/accounts-squid/src/types/domains/constants.ts b/indexers/accounts-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/accounts-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/accounts-squid/src/types/domains/events.ts b/indexers/accounts-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/accounts-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/domains/storage.ts b/indexers/accounts-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/accounts-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/accounts-squid/src/types/events.ts b/indexers/accounts-squid/src/types/events.ts deleted file mode 100644 index 9ec91fd9b..000000000 --- a/indexers/accounts-squid/src/types/events.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as transactionPayment from './transaction-payment/events' -export * as domains from './domains/events' diff --git a/indexers/accounts-squid/src/types/index.ts b/indexers/accounts-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/accounts-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/accounts-squid/src/types/rewards/calls.ts b/indexers/accounts-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/accounts-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/rewards/constants.ts b/indexers/accounts-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/accounts-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/accounts-squid/src/types/rewards/events.ts b/indexers/accounts-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/accounts-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/rewards/storage.ts b/indexers/accounts-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/accounts-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/accounts-squid/src/types/storage.ts b/indexers/accounts-squid/src/types/storage.ts deleted file mode 100644 index f9f60a12b..000000000 --- a/indexers/accounts-squid/src/types/storage.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as transactionPayment from './transaction-payment/storage' -export * as domains from './domains/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/accounts-squid/src/types/subspace/calls.ts b/indexers/accounts-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/accounts-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/accounts-squid/src/types/subspace/constants.ts b/indexers/accounts-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/accounts-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/accounts-squid/src/types/subspace/events.ts b/indexers/accounts-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/accounts-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/accounts-squid/src/types/subspace/storage.ts b/indexers/accounts-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/accounts-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/accounts-squid/src/types/support.ts b/indexers/accounts-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/accounts-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/accounts-squid/src/types/system/calls.ts b/indexers/accounts-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/accounts-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/system/constants.ts b/indexers/accounts-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/accounts-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/accounts-squid/src/types/system/events.ts b/indexers/accounts-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/accounts-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/system/storage.ts b/indexers/accounts-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/accounts-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/accounts-squid/src/types/transaction-fees/constants.ts b/indexers/accounts-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/accounts-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/accounts-squid/src/types/transaction-fees/events.ts b/indexers/accounts-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/accounts-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/transaction-fees/storage.ts b/indexers/accounts-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/accounts-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/accounts-squid/src/types/transaction-payment/constants.ts b/indexers/accounts-squid/src/types/transaction-payment/constants.ts deleted file mode 100644 index 92856764a..000000000 --- a/indexers/accounts-squid/src/types/transaction-payment/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), -} diff --git a/indexers/accounts-squid/src/types/transaction-payment/events.ts b/indexers/accounts-squid/src/types/transaction-payment/events.ts deleted file mode 100644 index f2e82a56e..000000000 --- a/indexers/accounts-squid/src/types/transaction-payment/events.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), -} diff --git a/indexers/accounts-squid/src/types/transaction-payment/storage.ts b/indexers/accounts-squid/src/types/transaction-payment/storage.ts deleted file mode 100644 index 1fe2ddae7..000000000 --- a/indexers/accounts-squid/src/types/transaction-payment/storage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, -} - -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> -} - -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, -} - -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> -} diff --git a/indexers/accounts-squid/src/types/v0.ts b/indexers/accounts-squid/src/types/v0.ts deleted file mode 100644 index a00fca6ac..000000000 --- a/indexers/accounts-squid/src/types/v0.ts +++ /dev/null @@ -1,3281 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type Releases = Releases_V1Ancient | Releases_V2 - -export interface Releases_V1Ancient { - __kind: 'V1Ancient' -} - -export interface Releases_V2 { - __kind: 'V2' -} - -export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } -}) - -export type FixedU128 = bigint - -export const FixedU128 = sts.bigint() - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/accounts-squid/src/types/v1.ts b/indexers/accounts-squid/src/types/v1.ts deleted file mode 100644 index 4891a0287..000000000 --- a/indexers/accounts-squid/src/types/v1.ts +++ /dev/null @@ -1,2706 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/accounts-squid/src/types/v3.ts b/indexers/accounts-squid/src/types/v3.ts deleted file mode 100644 index 73fc962ae..000000000 --- a/indexers/accounts-squid/src/types/v3.ts +++ /dev/null @@ -1,205 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export type DomainId = number - -export const DomainId = sts.number() - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) diff --git a/indexers/accounts-squid/src/types/v5.ts b/indexers/accounts-squid/src/types/v5.ts deleted file mode 100644 index f626e91f8..000000000 --- a/indexers/accounts-squid/src/types/v5.ts +++ /dev/null @@ -1,2724 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) From ec020cf409ff1fb9bf11e83d88c736ee1af51364 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 27 Aug 2024 07:50:50 -0400 Subject: [PATCH 39/42] remove generated files from squids directory --- indexers/accounts-squid/.gitignore | 2 + .../db/migrations/1724677830992-Data.js | 33 - .../hasura/hasura_metadata.json | 0 indexers/consensus-squid/.gitignore | 5 +- .../db/migrations/1724418872585-Data.js | 93 - .../hasura/hasura_metadata.json | 0 indexers/consensus-squid/src/model/index.ts | 1 - .../src/types/balances/calls.ts | 119 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 312 -- .../src/types/balances/storage.ts | 253 - indexers/consensus-squid/src/types/calls.ts | 12 - .../consensus-squid/src/types/constants.ts | 11 - .../src/types/domains/calls.ts | 278 - .../src/types/domains/constants.ts | 213 - .../src/types/domains/events.ts | 250 - .../src/types/domains/storage.ts | 1226 ----- indexers/consensus-squid/src/types/events.ts | 13 - indexers/consensus-squid/src/types/index.ts | 8 - .../src/types/messenger/calls.ts | 146 - .../src/types/messenger/constants.ts | 23 - .../src/types/messenger/events.ts | 150 - .../src/types/messenger/storage.ts | 332 -- .../consensus-squid/src/types/mmr/storage.ts | 64 - .../src/types/offences-subspace/events.ts | 17 - .../src/types/offences-subspace/storage.ts | 90 - .../src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - .../src/types/runtime-configs/calls.ts | 53 - .../src/types/runtime-configs/storage.ts | 75 - indexers/consensus-squid/src/types/storage.ts | 16 - .../src/types/subspace-mmr/storage.ts | 26 - .../src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- .../consensus-squid/src/types/sudo/calls.ts | 164 - .../consensus-squid/src/types/sudo/events.ts | 65 - .../consensus-squid/src/types/sudo/storage.ts | 17 - indexers/consensus-squid/src/types/support.ts | 142 - .../consensus-squid/src/types/system/calls.ts | 146 - .../src/types/system/constants.ts | 66 - .../src/types/system/events.ts | 94 - .../src/types/system/storage.ts | 405 -- .../src/types/timestamp/calls.ts | 14 - .../src/types/timestamp/constants.ts | 16 - .../src/types/timestamp/storage.ts | 39 - .../src/types/transaction-fees/constants.ts | 43 - .../src/types/transaction-fees/events.ts | 54 - .../src/types/transaction-fees/storage.ts | 86 - .../types/transaction-payment/constants.ts | 31 - .../src/types/transaction-payment/events.ts | 18 - .../src/types/transaction-payment/storage.ts | 22 - .../src/types/transporter/calls.ts | 16 - .../src/types/transporter/events.ts | 86 - .../src/types/transporter/storage.ts | 132 - .../src/types/utility/calls.ts | 320 -- .../src/types/utility/constants.ts | 11 - .../src/types/utility/events.ts | 76 - indexers/consensus-squid/src/types/v0.ts | 4642 ----------------- indexers/consensus-squid/src/types/v1.ts | 4097 --------------- indexers/consensus-squid/src/types/v3.ts | 2472 --------- indexers/consensus-squid/src/types/v5.ts | 4370 ---------------- .../src/types/vesting/calls.ts | 54 - .../src/types/vesting/constants.ts | 11 - .../src/types/vesting/events.ts | 44 - .../src/types/vesting/storage.ts | 31 - indexers/leaderboard-squid/.gitignore | 5 +- .../db/migrations/1724277861698-Data.js | 105 - indexers/leaderboard-squid/src/model/index.ts | 1 - .../src/types/balances/calls.ts | 119 - .../src/types/balances/constants.ts | 59 - .../src/types/balances/events.ts | 312 -- .../src/types/balances/storage.ts | 253 - indexers/leaderboard-squid/src/types/calls.ts | 5 - .../leaderboard-squid/src/types/constants.ts | 7 - .../src/types/domains/calls.ts | 278 - .../src/types/domains/constants.ts | 213 - .../src/types/domains/events.ts | 250 - .../src/types/domains/storage.ts | 1226 ----- .../leaderboard-squid/src/types/events.ts | 7 - indexers/leaderboard-squid/src/types/index.ts | 8 - .../src/types/rewards/calls.ts | 16 - .../src/types/rewards/constants.ts | 61 - .../src/types/rewards/events.ts | 30 - .../src/types/rewards/storage.ts | 82 - .../leaderboard-squid/src/types/storage.ts | 7 - .../src/types/subspace/calls.ts | 79 - .../src/types/subspace/constants.ts | 154 - .../src/types/subspace/events.ts | 31 - .../src/types/subspace/storage.ts | 390 -- .../leaderboard-squid/src/types/support.ts | 142 - .../src/types/system/calls.ts | 146 - .../src/types/system/constants.ts | 66 - .../src/types/system/events.ts | 94 - .../src/types/system/storage.ts | 405 -- .../src/types/transaction-fees/constants.ts | 43 - .../src/types/transaction-fees/events.ts | 54 - .../src/types/transaction-fees/storage.ts | 86 - .../types/transaction-payment/constants.ts | 31 - .../src/types/transaction-payment/events.ts | 18 - .../src/types/transaction-payment/storage.ts | 22 - indexers/leaderboard-squid/src/types/v0.ts | 3281 ------------ indexers/leaderboard-squid/src/types/v1.ts | 2706 ---------- indexers/leaderboard-squid/src/types/v3.ts | 205 - indexers/leaderboard-squid/src/types/v5.ts | 2724 ---------- indexers/staking-squid/.gitignore | 5 +- .../db/migrations/1724277861688-Data.js | 269 - .../src/model/generated/index.ts | 23 - .../src/model/generated/marshal.ts | 149 - indexers/staking-squid/src/model/index.ts | 1 - indexers/staking-squid/src/types/calls.ts | 1 - indexers/staking-squid/src/types/constants.ts | 1 - .../staking-squid/src/types/domains/calls.ts | 372 -- .../src/types/domains/constants.ts | 213 - .../staking-squid/src/types/domains/events.ts | 325 -- .../src/types/domains/storage.ts | 1362 ----- indexers/staking-squid/src/types/events.ts | 1 - indexers/staking-squid/src/types/index.ts | 9 - indexers/staking-squid/src/types/storage.ts | 1 - indexers/staking-squid/src/types/support.ts | 142 - indexers/staking-squid/src/types/v0.ts | 934 ---- indexers/staking-squid/src/types/v1.ts | 890 ---- indexers/staking-squid/src/types/v3.ts | 85 - indexers/staking-squid/src/types/v5.ts | 978 ---- indexers/staking-squid/src/types/v6.ts | 890 ---- 128 files changed, 14 insertions(+), 42865 deletions(-) delete mode 100644 indexers/accounts-squid/db/migrations/1724677830992-Data.js delete mode 100644 indexers/accounts-squid/hasura/hasura_metadata.json delete mode 100644 indexers/consensus-squid/db/migrations/1724418872585-Data.js delete mode 100644 indexers/consensus-squid/hasura/hasura_metadata.json delete mode 100644 indexers/consensus-squid/src/model/index.ts delete mode 100644 indexers/consensus-squid/src/types/balances/calls.ts delete mode 100644 indexers/consensus-squid/src/types/balances/constants.ts delete mode 100644 indexers/consensus-squid/src/types/balances/events.ts delete mode 100644 indexers/consensus-squid/src/types/balances/storage.ts delete mode 100644 indexers/consensus-squid/src/types/calls.ts delete mode 100644 indexers/consensus-squid/src/types/constants.ts delete mode 100644 indexers/consensus-squid/src/types/domains/calls.ts delete mode 100644 indexers/consensus-squid/src/types/domains/constants.ts delete mode 100644 indexers/consensus-squid/src/types/domains/events.ts delete mode 100644 indexers/consensus-squid/src/types/domains/storage.ts delete mode 100644 indexers/consensus-squid/src/types/events.ts delete mode 100644 indexers/consensus-squid/src/types/index.ts delete mode 100644 indexers/consensus-squid/src/types/messenger/calls.ts delete mode 100644 indexers/consensus-squid/src/types/messenger/constants.ts delete mode 100644 indexers/consensus-squid/src/types/messenger/events.ts delete mode 100644 indexers/consensus-squid/src/types/messenger/storage.ts delete mode 100644 indexers/consensus-squid/src/types/mmr/storage.ts delete mode 100644 indexers/consensus-squid/src/types/offences-subspace/events.ts delete mode 100644 indexers/consensus-squid/src/types/offences-subspace/storage.ts delete mode 100644 indexers/consensus-squid/src/types/rewards/calls.ts delete mode 100644 indexers/consensus-squid/src/types/rewards/constants.ts delete mode 100644 indexers/consensus-squid/src/types/rewards/events.ts delete mode 100644 indexers/consensus-squid/src/types/rewards/storage.ts delete mode 100644 indexers/consensus-squid/src/types/runtime-configs/calls.ts delete mode 100644 indexers/consensus-squid/src/types/runtime-configs/storage.ts delete mode 100644 indexers/consensus-squid/src/types/storage.ts delete mode 100644 indexers/consensus-squid/src/types/subspace-mmr/storage.ts delete mode 100644 indexers/consensus-squid/src/types/subspace/calls.ts delete mode 100644 indexers/consensus-squid/src/types/subspace/constants.ts delete mode 100644 indexers/consensus-squid/src/types/subspace/events.ts delete mode 100644 indexers/consensus-squid/src/types/subspace/storage.ts delete mode 100644 indexers/consensus-squid/src/types/sudo/calls.ts delete mode 100644 indexers/consensus-squid/src/types/sudo/events.ts delete mode 100644 indexers/consensus-squid/src/types/sudo/storage.ts delete mode 100644 indexers/consensus-squid/src/types/support.ts delete mode 100644 indexers/consensus-squid/src/types/system/calls.ts delete mode 100644 indexers/consensus-squid/src/types/system/constants.ts delete mode 100644 indexers/consensus-squid/src/types/system/events.ts delete mode 100644 indexers/consensus-squid/src/types/system/storage.ts delete mode 100644 indexers/consensus-squid/src/types/timestamp/calls.ts delete mode 100644 indexers/consensus-squid/src/types/timestamp/constants.ts delete mode 100644 indexers/consensus-squid/src/types/timestamp/storage.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-fees/constants.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-fees/events.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-fees/storage.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-payment/constants.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-payment/events.ts delete mode 100644 indexers/consensus-squid/src/types/transaction-payment/storage.ts delete mode 100644 indexers/consensus-squid/src/types/transporter/calls.ts delete mode 100644 indexers/consensus-squid/src/types/transporter/events.ts delete mode 100644 indexers/consensus-squid/src/types/transporter/storage.ts delete mode 100644 indexers/consensus-squid/src/types/utility/calls.ts delete mode 100644 indexers/consensus-squid/src/types/utility/constants.ts delete mode 100644 indexers/consensus-squid/src/types/utility/events.ts delete mode 100644 indexers/consensus-squid/src/types/v0.ts delete mode 100644 indexers/consensus-squid/src/types/v1.ts delete mode 100644 indexers/consensus-squid/src/types/v3.ts delete mode 100644 indexers/consensus-squid/src/types/v5.ts delete mode 100644 indexers/consensus-squid/src/types/vesting/calls.ts delete mode 100644 indexers/consensus-squid/src/types/vesting/constants.ts delete mode 100644 indexers/consensus-squid/src/types/vesting/events.ts delete mode 100644 indexers/consensus-squid/src/types/vesting/storage.ts delete mode 100644 indexers/leaderboard-squid/db/migrations/1724277861698-Data.js delete mode 100644 indexers/leaderboard-squid/src/model/index.ts delete mode 100644 indexers/leaderboard-squid/src/types/balances/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/balances/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/balances/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/balances/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/domains/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/domains/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/domains/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/domains/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/index.ts delete mode 100644 indexers/leaderboard-squid/src/types/rewards/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/rewards/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/rewards/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/rewards/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/subspace/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/subspace/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/subspace/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/subspace/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/support.ts delete mode 100644 indexers/leaderboard-squid/src/types/system/calls.ts delete mode 100644 indexers/leaderboard-squid/src/types/system/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/system/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/system/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-fees/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-fees/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-fees/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-payment/constants.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-payment/events.ts delete mode 100644 indexers/leaderboard-squid/src/types/transaction-payment/storage.ts delete mode 100644 indexers/leaderboard-squid/src/types/v0.ts delete mode 100644 indexers/leaderboard-squid/src/types/v1.ts delete mode 100644 indexers/leaderboard-squid/src/types/v3.ts delete mode 100644 indexers/leaderboard-squid/src/types/v5.ts delete mode 100644 indexers/staking-squid/db/migrations/1724277861688-Data.js delete mode 100644 indexers/staking-squid/src/model/generated/index.ts delete mode 100644 indexers/staking-squid/src/model/generated/marshal.ts delete mode 100644 indexers/staking-squid/src/model/index.ts delete mode 100644 indexers/staking-squid/src/types/calls.ts delete mode 100644 indexers/staking-squid/src/types/constants.ts delete mode 100644 indexers/staking-squid/src/types/domains/calls.ts delete mode 100644 indexers/staking-squid/src/types/domains/constants.ts delete mode 100644 indexers/staking-squid/src/types/domains/events.ts delete mode 100644 indexers/staking-squid/src/types/domains/storage.ts delete mode 100644 indexers/staking-squid/src/types/events.ts delete mode 100644 indexers/staking-squid/src/types/index.ts delete mode 100644 indexers/staking-squid/src/types/storage.ts delete mode 100644 indexers/staking-squid/src/types/support.ts delete mode 100644 indexers/staking-squid/src/types/v0.ts delete mode 100644 indexers/staking-squid/src/types/v1.ts delete mode 100644 indexers/staking-squid/src/types/v3.ts delete mode 100644 indexers/staking-squid/src/types/v5.ts delete mode 100644 indexers/staking-squid/src/types/v6.ts diff --git a/indexers/accounts-squid/.gitignore b/indexers/accounts-squid/.gitignore index 256442309..b7db6c18c 100644 --- a/indexers/accounts-squid/.gitignore +++ b/indexers/accounts-squid/.gitignore @@ -8,5 +8,7 @@ # IDE files /.idea +/db/ +/migrations/ /src/model/ /src/types/ \ No newline at end of file diff --git a/indexers/accounts-squid/db/migrations/1724677830992-Data.js b/indexers/accounts-squid/db/migrations/1724677830992-Data.js deleted file mode 100644 index 0f440288d..000000000 --- a/indexers/accounts-squid/db/migrations/1724677830992-Data.js +++ /dev/null @@ -1,33 +0,0 @@ -module.exports = class Data1724677830992 { - name = 'Data1724677830992' - - async up(db) { - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "nonce" numeric NOT NULL, "free" numeric NOT NULL, "reserved" numeric NOT NULL, "total" numeric, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3756b99a2c20a91a19196cbc11" ON "account" ("total") `) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "transfer" ("id" character varying NOT NULL, "from" text NOT NULL, "to" text NOT NULL, "value" numeric NOT NULL, "fee" numeric NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_fd9ddbdd49a17afcbe014401295" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_be54ea276e0f665ffc38630fc0" ON "transfer" ("from") `) - await db.query(`CREATE INDEX "IDX_4cbc37e8c3b47ded161f44c24f" ON "transfer" ("to") `) - await db.query(`CREATE INDEX "IDX_70ff8b624c3118ac3a4862d22c" ON "transfer" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_58367bdb03b7f41ade3b09f26a" ON "transfer" ("date") `) - await db.query(`CREATE INDEX "IDX_086e57d995900e69b54046e257" ON "transfer" ("created_at") `) - await db.query(`CREATE TABLE "slack_message" ("id" character varying NOT NULL, "message_id" text NOT NULL, CONSTRAINT "PK_0f63f6886c966a139786d88b66a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_aa83d548510c4e1b4ecd8d0caa" ON "slack_message" ("message_id") `) - } - - async down(db) { - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_3756b99a2c20a91a19196cbc11"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) - await db.query(`DROP TABLE "transfer"`) - await db.query(`DROP INDEX "public"."IDX_be54ea276e0f665ffc38630fc0"`) - await db.query(`DROP INDEX "public"."IDX_4cbc37e8c3b47ded161f44c24f"`) - await db.query(`DROP INDEX "public"."IDX_70ff8b624c3118ac3a4862d22c"`) - await db.query(`DROP INDEX "public"."IDX_58367bdb03b7f41ade3b09f26a"`) - await db.query(`DROP INDEX "public"."IDX_086e57d995900e69b54046e257"`) - await db.query(`DROP TABLE "slack_message"`) - await db.query(`DROP INDEX "public"."IDX_aa83d548510c4e1b4ecd8d0caa"`) - } -} diff --git a/indexers/accounts-squid/hasura/hasura_metadata.json b/indexers/accounts-squid/hasura/hasura_metadata.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/indexers/consensus-squid/.gitignore b/indexers/consensus-squid/.gitignore index 263e67075..b7db6c18c 100644 --- a/indexers/consensus-squid/.gitignore +++ b/indexers/consensus-squid/.gitignore @@ -8,4 +8,7 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/consensus-squid/db/migrations/1724418872585-Data.js b/indexers/consensus-squid/db/migrations/1724418872585-Data.js deleted file mode 100644 index 91191691a..000000000 --- a/indexers/consensus-squid/db/migrations/1724418872585-Data.js +++ /dev/null @@ -1,93 +0,0 @@ -module.exports = class Data1724418872585 { - name = 'Data1724418872585' - - async up(db) { - await db.query(`CREATE TABLE "module" ("id" character varying NOT NULL, "name" text NOT NULL, "extrinsic_count" integer NOT NULL, "event_count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_0e20d657f968b051e674fbe3117" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_620a549dbcb1fff62ea85695ca" ON "module" ("name") `) - await db.query(`CREATE INDEX "IDX_aac8e16583153278c82c899ab8" ON "module" ("created_at") `) - await db.query(`CREATE INDEX "IDX_c16ddff3e95aa2703abc3d5a28" ON "module" ("updated_at") `) - await db.query(`CREATE TABLE "extrinsic_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_1ab24c1987dcd101809f5a8a3e1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7b282ebcbaa791f6d66114d98e" ON "extrinsic_name" ("module_id") `) - await db.query(`CREATE INDEX "IDX_ce36c0304a5d68c15e02d71314" ON "extrinsic_name" ("name") `) - await db.query(`CREATE INDEX "IDX_bae4551dd1315a2d67413b3890" ON "extrinsic_name" ("created_at") `) - await db.query(`CREATE INDEX "IDX_cc38e78f38c29c0f176d20e8b5" ON "extrinsic_name" ("updated_at") `) - await db.query(`CREATE TABLE "event_name" ("id" character varying NOT NULL, "module_id" text NOT NULL, "name" text NOT NULL, "count" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_a24cc2e16061e6ac9737931298b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_04b26a4bd014a96a4dce111831" ON "event_name" ("module_id") `) - await db.query(`CREATE INDEX "IDX_8cc9a89327e353743cdbdeaf62" ON "event_name" ("name") `) - await db.query(`CREATE INDEX "IDX_308f89b7bd77129d674c746b9f" ON "event_name" ("created_at") `) - await db.query(`CREATE INDEX "IDX_138702642fef52ba4a89946294" ON "event_name" ("updated_at") `) - await db.query(`CREATE TABLE "block" ("id" character varying NOT NULL, "height" numeric NOT NULL, "hash" text NOT NULL, "parent_hash" text NOT NULL, "spec_id" text NOT NULL, "state_root" text NOT NULL, "extrinsics_root" text NOT NULL, "space_pledged" numeric NOT NULL, "blockchain_size" numeric NOT NULL, "owner" text NOT NULL, "extrinsics_count" integer NOT NULL, "events_count" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_d0925763efb591c2e2ffb267572" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_bce676e2b005104ccb768495db" ON "block" ("height") `) - await db.query(`CREATE INDEX "IDX_f8fba63d7965bfee9f304c487a" ON "block" ("hash") `) - await db.query(`CREATE INDEX "IDX_9f4b8d83ef6c743c966fd0ea49" ON "block" ("owner") `) - await db.query(`CREATE INDEX "IDX_5c67cbcf4960c1a39e5fe25e87" ON "block" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_20d6346bd56643a5262eaddced" ON "block" ("date") `) - await db.query(`CREATE TABLE "extrinsic" ("id" character varying NOT NULL, "hash" text NOT NULL, "index_in_block" integer NOT NULL, "nonce" numeric NOT NULL, "name" text NOT NULL, "signer" text NOT NULL, "signature" text NOT NULL, "error" text NOT NULL, "tip" numeric NOT NULL, "fee" numeric NOT NULL, "success" boolean NOT NULL, "block_id" text NOT NULL, "block_height" numeric NOT NULL, "pos" integer NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_80d7db0e4b1e83e30336bc76755" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1f45de0713a55049009e8e8127" ON "extrinsic" ("hash") `) - await db.query(`CREATE INDEX "IDX_86604c0ff42c185b99ee69c718" ON "extrinsic" ("name") `) - await db.query(`CREATE INDEX "IDX_001ddf290faf765f9dfd9154d3" ON "extrinsic" ("signer") `) - await db.query(`CREATE INDEX "IDX_29ac1ee135f61e5f2e476d3e22" ON "extrinsic" ("signature") `) - await db.query(`CREATE INDEX "IDX_a3b99daba1259dab0dd040d4f7" ON "extrinsic" ("block_id") `) - await db.query(`CREATE INDEX "IDX_398d967b32b6d5fd121a7f6dc9" ON "extrinsic" ("block_height") `) - await db.query(`CREATE INDEX "IDX_6e232918078798b1fade21dcf8" ON "extrinsic" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_91c0732a0bf8e06976cf832d34" ON "extrinsic" ("date") `) - await db.query(`CREATE INDEX "IDX_b09d3ab32bef80d2e4bf48cdac" ON "extrinsic" ("created_at") `) - await db.query(`CREATE TABLE "event" ("id" character varying NOT NULL, "index_in_block" integer NOT NULL, "name" text NOT NULL, "phase" text NOT NULL, "pos" integer NOT NULL, "block_id" text NOT NULL, "account_id" text NOT NULL, "block_height" numeric NOT NULL, "extrinsic_id" text NOT NULL, "call_id" text NOT NULL, "timestamp" numeric NOT NULL, "date" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, CONSTRAINT "PK_30c2f3bbaf6d34a55f8ae6e4614" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_b535fbe8ec6d832dde22065ebd" ON "event" ("name") `) - await db.query(`CREATE INDEX "IDX_2b0d35d675c4f99751855c4502" ON "event" ("block_id") `) - await db.query(`CREATE INDEX "IDX_77b76886d64fa0304db94dd4d9" ON "event" ("account_id") `) - await db.query(`CREATE INDEX "IDX_f0ad922cb716d6df1e08f1835c" ON "event" ("block_height") `) - await db.query(`CREATE INDEX "IDX_129efedcb305c80256db2d57a5" ON "event" ("extrinsic_id") `) - await db.query(`CREATE INDEX "IDX_83cf1bd59aa4521ed882fa5145" ON "event" ("call_id") `) - await db.query(`CREATE INDEX "IDX_2c15918ff289396205521c5f3c" ON "event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_158ebc26716f3fc2042cc9dd2e" ON "event" ("date") `) - await db.query(`CREATE INDEX "IDX_f0e0f3ea08224cc8c0ef1c7ae8" ON "event" ("created_at") `) - await db.query(`CREATE TABLE "slack_message" ("id" character varying NOT NULL, "message_id" text NOT NULL, CONSTRAINT "PK_0f63f6886c966a139786d88b66a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_aa83d548510c4e1b4ecd8d0caa" ON "slack_message" ("message_id") `) - } - - async down(db) { - await db.query(`DROP TABLE "module"`) - await db.query(`DROP INDEX "public"."IDX_620a549dbcb1fff62ea85695ca"`) - await db.query(`DROP INDEX "public"."IDX_aac8e16583153278c82c899ab8"`) - await db.query(`DROP INDEX "public"."IDX_c16ddff3e95aa2703abc3d5a28"`) - await db.query(`DROP TABLE "extrinsic_name"`) - await db.query(`DROP INDEX "public"."IDX_7b282ebcbaa791f6d66114d98e"`) - await db.query(`DROP INDEX "public"."IDX_ce36c0304a5d68c15e02d71314"`) - await db.query(`DROP INDEX "public"."IDX_bae4551dd1315a2d67413b3890"`) - await db.query(`DROP INDEX "public"."IDX_cc38e78f38c29c0f176d20e8b5"`) - await db.query(`DROP TABLE "event_name"`) - await db.query(`DROP INDEX "public"."IDX_04b26a4bd014a96a4dce111831"`) - await db.query(`DROP INDEX "public"."IDX_8cc9a89327e353743cdbdeaf62"`) - await db.query(`DROP INDEX "public"."IDX_308f89b7bd77129d674c746b9f"`) - await db.query(`DROP INDEX "public"."IDX_138702642fef52ba4a89946294"`) - await db.query(`DROP TABLE "block"`) - await db.query(`DROP INDEX "public"."IDX_bce676e2b005104ccb768495db"`) - await db.query(`DROP INDEX "public"."IDX_f8fba63d7965bfee9f304c487a"`) - await db.query(`DROP INDEX "public"."IDX_9f4b8d83ef6c743c966fd0ea49"`) - await db.query(`DROP INDEX "public"."IDX_5c67cbcf4960c1a39e5fe25e87"`) - await db.query(`DROP INDEX "public"."IDX_20d6346bd56643a5262eaddced"`) - await db.query(`DROP TABLE "extrinsic"`) - await db.query(`DROP INDEX "public"."IDX_1f45de0713a55049009e8e8127"`) - await db.query(`DROP INDEX "public"."IDX_86604c0ff42c185b99ee69c718"`) - await db.query(`DROP INDEX "public"."IDX_001ddf290faf765f9dfd9154d3"`) - await db.query(`DROP INDEX "public"."IDX_29ac1ee135f61e5f2e476d3e22"`) - await db.query(`DROP INDEX "public"."IDX_a3b99daba1259dab0dd040d4f7"`) - await db.query(`DROP INDEX "public"."IDX_398d967b32b6d5fd121a7f6dc9"`) - await db.query(`DROP INDEX "public"."IDX_6e232918078798b1fade21dcf8"`) - await db.query(`DROP INDEX "public"."IDX_91c0732a0bf8e06976cf832d34"`) - await db.query(`DROP INDEX "public"."IDX_b09d3ab32bef80d2e4bf48cdac"`) - await db.query(`DROP TABLE "event"`) - await db.query(`DROP INDEX "public"."IDX_b535fbe8ec6d832dde22065ebd"`) - await db.query(`DROP INDEX "public"."IDX_2b0d35d675c4f99751855c4502"`) - await db.query(`DROP INDEX "public"."IDX_77b76886d64fa0304db94dd4d9"`) - await db.query(`DROP INDEX "public"."IDX_f0ad922cb716d6df1e08f1835c"`) - await db.query(`DROP INDEX "public"."IDX_129efedcb305c80256db2d57a5"`) - await db.query(`DROP INDEX "public"."IDX_83cf1bd59aa4521ed882fa5145"`) - await db.query(`DROP INDEX "public"."IDX_2c15918ff289396205521c5f3c"`) - await db.query(`DROP INDEX "public"."IDX_158ebc26716f3fc2042cc9dd2e"`) - await db.query(`DROP INDEX "public"."IDX_f0e0f3ea08224cc8c0ef1c7ae8"`) - await db.query(`DROP TABLE "slack_message"`) - await db.query(`DROP INDEX "public"."IDX_aa83d548510c4e1b4ecd8d0caa"`) - } -} diff --git a/indexers/consensus-squid/hasura/hasura_metadata.json b/indexers/consensus-squid/hasura/hasura_metadata.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/indexers/consensus-squid/src/model/index.ts b/indexers/consensus-squid/src/model/index.ts deleted file mode 100644 index 99735f641..000000000 --- a/indexers/consensus-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './generated' diff --git a/indexers/consensus-squid/src/types/balances/calls.ts b/indexers/consensus-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/consensus-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/balances/constants.ts b/indexers/consensus-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/consensus-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/balances/events.ts b/indexers/consensus-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/consensus-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/balances/storage.ts b/indexers/consensus-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/consensus-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/consensus-squid/src/types/calls.ts b/indexers/consensus-squid/src/types/calls.ts deleted file mode 100644 index e6fe24ab0..000000000 --- a/indexers/consensus-squid/src/types/calls.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * as system from './system/calls' -export * as timestamp from './timestamp/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as utility from './utility/calls' -export * as domains from './domains/calls' -export * as runtimeConfigs from './runtime-configs/calls' -export * as vesting from './vesting/calls' -export * as messenger from './messenger/calls' -export * as transporter from './transporter/calls' -export * as sudo from './sudo/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/consensus-squid/src/types/constants.ts b/indexers/consensus-squid/src/types/constants.ts deleted file mode 100644 index c657c464d..000000000 --- a/indexers/consensus-squid/src/types/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * as system from './system/constants' -export * as timestamp from './timestamp/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as transactionPayment from './transaction-payment/constants' -export * as utility from './utility/constants' -export * as domains from './domains/constants' -export * as vesting from './vesting/constants' -export * as messenger from './messenger/constants' diff --git a/indexers/consensus-squid/src/types/domains/calls.ts b/indexers/consensus-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/consensus-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/domains/constants.ts b/indexers/consensus-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/consensus-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/domains/events.ts b/indexers/consensus-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/consensus-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/domains/storage.ts b/indexers/consensus-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/consensus-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/consensus-squid/src/types/events.ts b/indexers/consensus-squid/src/types/events.ts deleted file mode 100644 index 69e966580..000000000 --- a/indexers/consensus-squid/src/types/events.ts +++ /dev/null @@ -1,13 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as offencesSubspace from './offences-subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as transactionPayment from './transaction-payment/events' -export * as utility from './utility/events' -export * as domains from './domains/events' -export * as vesting from './vesting/events' -export * as messenger from './messenger/events' -export * as transporter from './transporter/events' -export * as sudo from './sudo/events' diff --git a/indexers/consensus-squid/src/types/index.ts b/indexers/consensus-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/consensus-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/consensus-squid/src/types/messenger/calls.ts b/indexers/consensus-squid/src/types/messenger/calls.ts deleted file mode 100644 index 03c0f7588..000000000 --- a/indexers/consensus-squid/src/types/messenger/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const initiateChannel = { - name: 'Messenger.initiate_channel', - /** - * See [`Pallet::initiate_channel`]. - */ - v0: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v0.ChainId, - params: v0.InitiateChannelParams, - }) - ), - /** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ - v5: new CallType( - 'Messenger.initiate_channel', - sts.struct({ - dstChainId: v5.ChainId, - params: v5.InitiateChannelParams, - }) - ), -} - -export const closeChannel = { - name: 'Messenger.close_channel', - /** - * See [`Pallet::close_channel`]. - */ - v0: new CallType( - 'Messenger.close_channel', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - }) - ), -} - -export const relayMessage = { - name: 'Messenger.relay_message', - /** - * See [`Pallet::relay_message`]. - */ - v0: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message`]. - */ - v3: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives an Inbox message that needs to be validated and processed. - */ - v5: new CallType( - 'Messenger.relay_message', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const relayMessageResponse = { - name: 'Messenger.relay_message_response', - /** - * See [`Pallet::relay_message_response`]. - */ - v0: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v0.CrossDomainMessage, - }) - ), - /** - * See [`Pallet::relay_message_response`]. - */ - v3: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v3.CrossDomainMessage, - }) - ), - /** - * Receives a response from the dst_chain for a message in Outbox. - */ - v5: new CallType( - 'Messenger.relay_message_response', - sts.struct({ - msg: v5.CrossDomainMessage, - }) - ), -} - -export const updateConsensusChainAllowlist = { - name: 'Messenger.update_consensus_chain_allowlist', - /** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_consensus_chain_allowlist', - sts.struct({ - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const initiateDomainUpdateChainAllowlist = { - name: 'Messenger.initiate_domain_update_chain_allowlist', - /** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ - v3: new CallType( - 'Messenger.initiate_domain_update_chain_allowlist', - sts.struct({ - domainId: v3.DomainId, - update: v3.ChainAllowlistUpdate, - }) - ), -} - -export const updateDomainAllowlist = { - name: 'Messenger.update_domain_allowlist', - /** - * See [`Pallet::update_domain_allowlist`]. - */ - v3: new CallType( - 'Messenger.update_domain_allowlist', - sts.struct({ - updates: v3.DomainAllowlistUpdates, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/messenger/constants.ts b/indexers/consensus-squid/src/types/messenger/constants.ts deleted file mode 100644 index fecb47fda..000000000 --- a/indexers/consensus-squid/src/types/messenger/constants.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v5 from '../v5' - -export const channelReserveFee = { - /** - * Channel reserve fee to open a channel. - */ - v3: new ConstantType( - 'Messenger.ChannelReserveFee', - sts.bigint() - ), -} - -export const channelInitReservePortion = { - /** - * Portion of Channel reserve taken by the protocol - * if the channel is in init state and is requested to be closed. - */ - v5: new ConstantType( - 'Messenger.ChannelInitReservePortion', - v5.Perbill - ), -} diff --git a/indexers/consensus-squid/src/types/messenger/events.ts b/indexers/consensus-squid/src/types/messenger/events.ts deleted file mode 100644 index c36e8bf2b..000000000 --- a/indexers/consensus-squid/src/types/messenger/events.ts +++ /dev/null @@ -1,150 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const channelInitiated = { - name: 'Messenger.ChannelInitiated', - /** - * Emits when a channel between two chains is initiated. - */ - v0: new EventType( - 'Messenger.ChannelInitiated', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelClosed = { - name: 'Messenger.ChannelClosed', - /** - * Emits when a channel between two chains is closed. - */ - v0: new EventType( - 'Messenger.ChannelClosed', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const channelOpen = { - name: 'Messenger.ChannelOpen', - /** - * Emits when a channel between two chain is open. - */ - v0: new EventType( - 'Messenger.ChannelOpen', - sts.struct({ - /** - * Foreign chain id this channel connects to. - */ - chainId: v0.ChainId, - /** - * Channel ID of the said channel. - */ - channelId: sts.bigint(), - }) - ), -} - -export const outboxMessage = { - name: 'Messenger.OutboxMessage', - /** - * Emits when a new message is added to the outbox. - */ - v0: new EventType( - 'Messenger.OutboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResponse = { - name: 'Messenger.OutboxMessageResponse', - /** - * Emits when a message response is available for Outbox message. - */ - v0: new EventType( - 'Messenger.OutboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const outboxMessageResult = { - name: 'Messenger.OutboxMessageResult', - /** - * Emits outbox message result. - */ - v0: new EventType( - 'Messenger.OutboxMessageResult', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: v0.OutboxMessageResult, - }) - ), -} - -export const inboxMessage = { - name: 'Messenger.InboxMessage', - /** - * Emits when a new inbox message is validated and added to Inbox. - */ - v0: new EventType( - 'Messenger.InboxMessage', - sts.struct({ - chainId: v0.ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} - -export const inboxMessageResponse = { - name: 'Messenger.InboxMessageResponse', - /** - * Emits when a message response is available for Inbox message. - */ - v0: new EventType( - 'Messenger.InboxMessageResponse', - sts.struct({ - /** - * Destination chain ID. - */ - chainId: v0.ChainId, - /** - * Channel Is - */ - channelId: sts.bigint(), - nonce: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/messenger/storage.ts b/indexers/consensus-squid/src/types/messenger/storage.ts deleted file mode 100644 index cb857a76e..000000000 --- a/indexers/consensus-squid/src/types/messenger/storage.ts +++ /dev/null @@ -1,332 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const nextChannelId = { - /** - * Stores the next channel id for a foreign chain. - */ - v0: new StorageType('Messenger.NextChannelId', 'Default', [v0.ChainId], sts.bigint()) as NextChannelIdV0, -} - -/** - * Stores the next channel id for a foreign chain. - */ -export interface NextChannelIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v0.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.ChainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.ChainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.ChainId): Promise<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.ChainId): AsyncIterable<[k: v0.ChainId, v: (bigint | undefined)][]> -} - -export const channels = { - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v0: new StorageType('Messenger.Channels', 'Optional', [v0.ChainId, sts.bigint()], v0.Channel) as ChannelsV0, - /** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ - v3: new StorageType('Messenger.Channels', 'Optional', [v3.ChainId, sts.bigint()], v3.Channel) as ChannelsV3, -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: bigint): Promise<(v0.Channel | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint][]): Promise<(v0.Channel | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, bigint][]> - getKeys(block: Block, key1: v0.ChainId, key2: bigint): Promise<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[v0.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: bigint): Promise<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: bigint): AsyncIterable<[k: [v0.ChainId, bigint], v: (v0.Channel | undefined)][]> -} - -/** - * Stores channel config between two chains. - * Key points to the foreign chain wrt own chain's storage name space - */ -export interface ChannelsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v3.ChainId, key2: bigint): Promise<(v3.Channel | undefined)> - getMany(block: Block, keys: [v3.ChainId, bigint][]): Promise<(v3.Channel | undefined)[]> - getKeys(block: Block): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId): Promise<[v3.ChainId, bigint][]> - getKeys(block: Block, key1: v3.ChainId, key2: bigint): Promise<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[v3.ChainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[v3.ChainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairs(block: Block, key1: v3.ChainId, key2: bigint): Promise<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v3.ChainId, key2: bigint): AsyncIterable<[k: [v3.ChainId, bigint], v: (v3.Channel | undefined)][]> -} - -export const inbox = { - /** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ - v0: new StorageType('Messenger.Inbox', 'Optional', [], v0.Message) as InboxV0, -} - -/** - * A temporary storage for storing decoded inbox message between `pre_dispatch_relay_message` - * and `relay_message`. - */ -export interface InboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const inboxFee = { - /** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ - v0: new StorageType('Messenger.InboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as InboxFeeV0, -} - -/** - * A temporary storage of fees for executing an inbox message. - * The storage is cleared when the acknowledgement of inbox response is received - * from the src_chain. - */ -export interface InboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const outboxFee = { - /** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ - v0: new StorageType('Messenger.OutboxFee', 'Optional', [sts.tuple(() => [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])])], sts.bigint()) as OutboxFeeV0, -} - -/** - * A temporary storage of fees for executing an outbox message and its response from dst_chain. - * The storage is cleared when src_chain receives the response from dst_chain. - */ -export interface OutboxFeeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, [bigint, bigint]]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, [bigint, bigint]]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (bigint | undefined)][]> -} - -export const inboxResponses = { - /** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ - v0: new StorageType('Messenger.InboxResponses', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as InboxResponsesV0, -} - -/** - * Stores the message responses of the incoming processed responses. - * Used by the dst_chains to verify the message response. - */ -export interface InboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForInboxResponses = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForInboxResponses', 'Default', [], sts.number()) as CounterForInboxResponsesV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForInboxResponsesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outbox = { - /** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ - v0: new StorageType('Messenger.Outbox', 'Optional', [sts.tuple(() => [v0.ChainId, sts.bigint(), sts.bigint()])], v0.Message) as OutboxV0, -} - -/** - * Stores the outgoing messages that are awaiting message responses from the dst_chain. - * Messages are processed in the outbox nonce order of chain's channel. - */ -export interface OutboxV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<(v0.Message | undefined)> - getMany(block: Block, keys: [v0.ChainId, bigint, bigint][]): Promise<(v0.Message | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, bigint, bigint][]> - getKeys(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[v0.ChainId, bigint, bigint][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairs(block: Block, key: [v0.ChainId, bigint, bigint]): Promise<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.ChainId, bigint, bigint]): AsyncIterable<[k: [v0.ChainId, bigint, bigint], v: (v0.Message | undefined)][]> -} - -export const counterForOutbox = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Messenger.CounterForOutbox', 'Default', [], sts.number()) as CounterForOutboxV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForOutboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const outboxResponses = { - /** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ - v0: new StorageType('Messenger.OutboxResponses', 'Optional', [], v0.Message) as OutboxResponsesV0, -} - -/** - * A temporary storage for storing decoded outbox response message between `pre_dispatch_relay_message_response` - * and `relay_message_response`. - */ -export interface OutboxResponsesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Message | undefined)> -} - -export const blockMessages = { - /** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ - v0: new StorageType('Messenger.BlockMessages', 'Optional', [], v0.BlockMessages) as BlockMessagesV0, -} - -/** - * A temporary storage to store all the messages to be relayed in this block. - * Will be cleared on the initialization on next block. - */ -export interface BlockMessagesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.BlockMessages | undefined)> -} - -export const chainAllowlist = { - /** - * An allowlist of chains that can open channel with this chain. - */ - v3: new StorageType('Messenger.ChainAllowlist', 'Default', [], sts.array(() => v3.ChainId)) as ChainAllowlistV3, -} - -/** - * An allowlist of chains that can open channel with this chain. - */ -export interface ChainAllowlistV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.ChainId[] - get(block: Block): Promise<(v3.ChainId[] | undefined)> -} - -export const domainChainAllowlistUpdate = { - /** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ - v3: new StorageType('Messenger.DomainChainAllowlistUpdate', 'Optional', [v3.DomainId], v3.DomainAllowlistUpdates) as DomainChainAllowlistUpdateV3, -} - -/** - * A temporary storage to store any allowlist updates to domain. - * Will be cleared in the next block once the previous block has a domain bundle. - */ -export interface DomainChainAllowlistUpdateV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v3.DomainId): Promise<(v3.DomainAllowlistUpdates | undefined)> - getMany(block: Block, keys: v3.DomainId[]): Promise<(v3.DomainAllowlistUpdates | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairs(block: Block, key: v3.DomainId): Promise<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.DomainId): AsyncIterable<[k: v3.DomainId, v: (v3.DomainAllowlistUpdates | undefined)][]> -} - -export const messageWeightTags = { - /** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ - v5: new StorageType('Messenger.MessageWeightTags', 'Optional', [], v5.MessageWeightTags) as MessageWeightTagsV5, -} - -/** - * Storage to store the weight tags for all the outbox and inbox response messages. - */ -export interface MessageWeightTagsV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.MessageWeightTags | undefined)> -} diff --git a/indexers/consensus-squid/src/types/mmr/storage.ts b/indexers/consensus-squid/src/types/mmr/storage.ts deleted file mode 100644 index b4c49bbab..000000000 --- a/indexers/consensus-squid/src/types/mmr/storage.ts +++ /dev/null @@ -1,64 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const rootHash = { - /** - * Latest MMR Root hash. - */ - v0: new StorageType('Mmr.RootHash', 'Default', [], v0.H256) as RootHashV0, -} - -/** - * Latest MMR Root hash. - */ -export interface RootHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const numberOfLeaves = { - /** - * Current size of the MMR (number of leaves). - */ - v0: new StorageType('Mmr.NumberOfLeaves', 'Default', [], sts.bigint()) as NumberOfLeavesV0, -} - -/** - * Current size of the MMR (number of leaves). - */ -export interface NumberOfLeavesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const nodes = { - /** - * Hashes of the nodes in the MMR. - * - * Note this collection only contains MMR peaks, the inner nodes (and leaves) - * are pruned and only stored in the Offchain DB. - */ - v0: new StorageType('Mmr.Nodes', 'Optional', [sts.bigint()], v0.H256) as NodesV0, -} - -/** - * Hashes of the nodes in the MMR. - * - * Note this collection only contains MMR peaks, the inner nodes (and leaves) - * are pruned and only stored in the Offchain DB. - */ -export interface NodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.H256 | undefined)][]> -} diff --git a/indexers/consensus-squid/src/types/offences-subspace/events.ts b/indexers/consensus-squid/src/types/offences-subspace/events.ts deleted file mode 100644 index 71fb77783..000000000 --- a/indexers/consensus-squid/src/types/offences-subspace/events.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' - -export const offence = { - name: 'OffencesSubspace.Offence', - /** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ - v0: new EventType( - 'OffencesSubspace.Offence', - sts.struct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/offences-subspace/storage.ts b/indexers/consensus-squid/src/types/offences-subspace/storage.ts deleted file mode 100644 index bbc37e51f..000000000 --- a/indexers/consensus-squid/src/types/offences-subspace/storage.ts +++ /dev/null @@ -1,90 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reports = { - /** - * The primary structure that holds all offence records keyed by report identifiers. - */ - v0: new StorageType('OffencesSubspace.Reports', 'Optional', [v0.H256], v0.OffenceDetails) as ReportsV0, -} - -/** - * The primary structure that holds all offence records keyed by report identifiers. - */ -export interface ReportsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.OffenceDetails | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.OffenceDetails | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.OffenceDetails | undefined)][]> -} - -export const concurrentReportsIndex = { - /** - * A vector of reports of the same kind that happened at the same time slot. - */ - v0: new StorageType('OffencesSubspace.ConcurrentReportsIndex', 'Default', [sts.bytes(), sts.bytes()], sts.array(() => v0.H256)) as ConcurrentReportsIndexV0, -} - -/** - * A vector of reports of the same kind that happened at the same time slot. - */ -export interface ConcurrentReportsIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key1: Bytes, key2: Bytes): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: [Bytes, Bytes][]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes): Promise<[Bytes, Bytes][]> - getKeys(block: Block, key1: Bytes, key2: Bytes): Promise<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[Bytes, Bytes][]> - getKeysPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[Bytes, Bytes][]> - getPairs(block: Block): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key1: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key1: Bytes, key2: Bytes): Promise<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: Bytes, key2: Bytes): AsyncIterable<[k: [Bytes, Bytes], v: (v0.H256[] | undefined)][]> -} - -export const reportsByKindIndex = { - /** - * Enumerates all reports of a kind along with the time they happened. - * - * All reports are sorted by the time of offence. - * - * Note that the actual type of this mapping is `Vec`, this is because values of - * different types are not supported at the moment so we are doing the manual serialization. - */ - v0: new StorageType('OffencesSubspace.ReportsByKindIndex', 'Default', [sts.bytes()], sts.bytes()) as ReportsByKindIndexV0, -} - -/** - * Enumerates all reports of a kind along with the time they happened. - * - * All reports are sorted by the time of offence. - * - * Note that the actual type of this mapping is `Vec`, this is because values of - * different types are not supported at the moment so we are doing the manual serialization. - */ -export interface ReportsByKindIndexV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: Bytes): Promise<(Bytes | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (Bytes | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (Bytes | undefined)][]> -} diff --git a/indexers/consensus-squid/src/types/rewards/calls.ts b/indexers/consensus-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/consensus-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/rewards/constants.ts b/indexers/consensus-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/consensus-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/consensus-squid/src/types/rewards/events.ts b/indexers/consensus-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/consensus-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/rewards/storage.ts b/indexers/consensus-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/consensus-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/consensus-squid/src/types/runtime-configs/calls.ts b/indexers/consensus-squid/src/types/runtime-configs/calls.ts deleted file mode 100644 index d5c4a64e3..000000000 --- a/indexers/consensus-squid/src/types/runtime-configs/calls.ts +++ /dev/null @@ -1,53 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const setEnableDomains = { - name: 'RuntimeConfigs.set_enable_domains', - /** - * See [`Pallet::set_enable_domains`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_domains', - sts.struct({ - enableDomains: sts.boolean(), - }) - ), -} - -export const setEnableDynamicCostOfStorage = { - name: 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - /** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_dynamic_cost_of_storage', - sts.struct({ - enableDynamicCostOfStorage: sts.boolean(), - }) - ), -} - -export const setEnableBalanceTransfers = { - name: 'RuntimeConfigs.set_enable_balance_transfers', - /** - * See [`Pallet::set_enable_balance_transfers`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_balance_transfers', - sts.struct({ - enableBalanceTransfers: sts.boolean(), - }) - ), -} - -export const setEnableNonRootCalls = { - name: 'RuntimeConfigs.set_enable_non_root_calls', - /** - * See [`Pallet::set_enable_non_root_calls`]. - */ - v0: new CallType( - 'RuntimeConfigs.set_enable_non_root_calls', - sts.struct({ - enableNonRootCalls: sts.boolean(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/runtime-configs/storage.ts b/indexers/consensus-squid/src/types/runtime-configs/storage.ts deleted file mode 100644 index 7ef56beaa..000000000 --- a/indexers/consensus-squid/src/types/runtime-configs/storage.ts +++ /dev/null @@ -1,75 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const enableDomains = { - /** - * Whether to enable calls in pallet-domains. - */ - v0: new StorageType('RuntimeConfigs.EnableDomains', 'Default', [], sts.boolean()) as EnableDomainsV0, -} - -/** - * Whether to enable calls in pallet-domains. - */ -export interface EnableDomainsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const enableDynamicCostOfStorage = { - /** - * Whether to enable dynamic cost of storage. - */ - v0: new StorageType('RuntimeConfigs.EnableDynamicCostOfStorage', 'Default', [], sts.boolean()) as EnableDynamicCostOfStorageV0, -} - -/** - * Whether to enable dynamic cost of storage. - */ -export interface EnableDynamicCostOfStorageV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const enableBalanceTransfers = { - /** - * Whether to enable balances transfers. - */ - v0: new StorageType('RuntimeConfigs.EnableBalanceTransfers', 'Default', [], sts.boolean()) as EnableBalanceTransfersV0, -} - -/** - * Whether to enable balances transfers. - */ -export interface EnableBalanceTransfersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const enableNonRootCalls = { - /** - * Whether to enable calls from non-root account. - */ - v0: new StorageType('RuntimeConfigs.EnableNonRootCalls', 'Default', [], sts.boolean()) as EnableNonRootCallsV0, -} - -/** - * Whether to enable calls from non-root account. - */ -export interface EnableNonRootCallsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const confirmationDepthK = { - v0: new StorageType('RuntimeConfigs.ConfirmationDepthK', 'Default', [], sts.number()) as ConfirmationDepthKV0, -} - -export interface ConfirmationDepthKV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} diff --git a/indexers/consensus-squid/src/types/storage.ts b/indexers/consensus-squid/src/types/storage.ts deleted file mode 100644 index 3e27756f0..000000000 --- a/indexers/consensus-squid/src/types/storage.ts +++ /dev/null @@ -1,16 +0,0 @@ -export * as system from './system/storage' -export * as timestamp from './timestamp/storage' -export * as subspace from './subspace/storage' -export * as offencesSubspace from './offences-subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as transactionPayment from './transaction-payment/storage' -export * as domains from './domains/storage' -export * as runtimeConfigs from './runtime-configs/storage' -export * as vesting from './vesting/storage' -export * as mmr from './mmr/storage' -export * as messenger from './messenger/storage' -export * as transporter from './transporter/storage' -export * as sudo from './sudo/storage' -export * as rewards from './rewards/storage' -export * as subspaceMmr from './subspace-mmr/storage' diff --git a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts b/indexers/consensus-squid/src/types/subspace-mmr/storage.ts deleted file mode 100644 index f095c3c8a..000000000 --- a/indexers/consensus-squid/src/types/subspace-mmr/storage.ts +++ /dev/null @@ -1,26 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v5 from '../v5' - -export const mmrRootHashes = { - /** - * Map of block numbers to mmr root hashes. - */ - v5: new StorageType('SubspaceMmr.MmrRootHashes', 'Optional', [sts.number()], v5.H256) as MmrRootHashesV5, -} - -/** - * Map of block numbers to mmr root hashes. - */ -export interface MmrRootHashesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.H256 | undefined)][]> -} diff --git a/indexers/consensus-squid/src/types/subspace/calls.ts b/indexers/consensus-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/consensus-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/consensus-squid/src/types/subspace/constants.ts b/indexers/consensus-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/consensus-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/subspace/events.ts b/indexers/consensus-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/consensus-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/subspace/storage.ts b/indexers/consensus-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/consensus-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/consensus-squid/src/types/sudo/calls.ts b/indexers/consensus-squid/src/types/sudo/calls.ts deleted file mode 100644 index dd08aa2e5..000000000 --- a/indexers/consensus-squid/src/types/sudo/calls.ts +++ /dev/null @@ -1,164 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const sudo = { - name: 'Sudo.sudo', - /** - * See [`Pallet::sudo`]. - */ - v0: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v0.Call, - }) - ), - /** - * See [`Pallet::sudo`]. - */ - v1: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v1.Call, - }) - ), - /** - * See [`Pallet::sudo`]. - */ - v3: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v3.Call, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ - v5: new CallType( - 'Sudo.sudo', - sts.struct({ - call: v5.Call, - }) - ), -} - -export const sudoUncheckedWeight = { - name: 'Sudo.sudo_unchecked_weight', - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v0: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v1: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::sudo_unchecked_weight`]. - */ - v3: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_unchecked_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), -} - -export const setKey = { - name: 'Sudo.set_key', - /** - * See [`Pallet::set_key`]. - */ - v0: new CallType( - 'Sudo.set_key', - sts.struct({ - new: v0.MultiAddress, - }) - ), -} - -export const sudoAs = { - name: 'Sudo.sudo_as', - /** - * See [`Pallet::sudo_as`]. - */ - v0: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v0.MultiAddress, - call: v0.Call, - }) - ), - /** - * See [`Pallet::sudo_as`]. - */ - v1: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v1.MultiAddress, - call: v1.Call, - }) - ), - /** - * See [`Pallet::sudo_as`]. - */ - v3: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v3.MultiAddress, - call: v3.Call, - }) - ), - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Sudo.sudo_as', - sts.struct({ - who: v5.MultiAddress, - call: v5.Call, - }) - ), -} - -export const removeKey = { - name: 'Sudo.remove_key', - /** - * See [`Pallet::remove_key`]. - */ - v0: new CallType( - 'Sudo.remove_key', - sts.unit() - ), -} diff --git a/indexers/consensus-squid/src/types/sudo/events.ts b/indexers/consensus-squid/src/types/sudo/events.ts deleted file mode 100644 index 2e134d96a..000000000 --- a/indexers/consensus-squid/src/types/sudo/events.ts +++ /dev/null @@ -1,65 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const sudid = { - name: 'Sudo.Sudid', - /** - * A sudo call just took place. - */ - v0: new EventType( - 'Sudo.Sudid', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} - -export const keyChanged = { - name: 'Sudo.KeyChanged', - /** - * The sudo key has been updated. - */ - v0: new EventType( - 'Sudo.KeyChanged', - sts.struct({ - /** - * The old sudo key (if one was previously set). - */ - old: sts.option(() => v0.AccountId32), - /** - * The new sudo key (if one was set). - */ - new: v0.AccountId32, - }) - ), -} - -export const keyRemoved = { - name: 'Sudo.KeyRemoved', - /** - * The key was permanently removed. - */ - v0: new EventType( - 'Sudo.KeyRemoved', - sts.unit() - ), -} - -export const sudoAsDone = { - name: 'Sudo.SudoAsDone', - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ - v0: new EventType( - 'Sudo.SudoAsDone', - sts.struct({ - /** - * The result of the call made by the sudo user. - */ - sudoResult: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/sudo/storage.ts b/indexers/consensus-squid/src/types/sudo/storage.ts deleted file mode 100644 index 21712c680..000000000 --- a/indexers/consensus-squid/src/types/sudo/storage.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const key = { - /** - * The `AccountId` of the sudo key. - */ - v0: new StorageType('Sudo.Key', 'Optional', [], v0.AccountId32) as KeyV0, -} - -/** - * The `AccountId` of the sudo key. - */ -export interface KeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} diff --git a/indexers/consensus-squid/src/types/support.ts b/indexers/consensus-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/consensus-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/consensus-squid/src/types/system/calls.ts b/indexers/consensus-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/consensus-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/system/constants.ts b/indexers/consensus-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/consensus-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/system/events.ts b/indexers/consensus-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/consensus-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/system/storage.ts b/indexers/consensus-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/consensus-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/consensus-squid/src/types/timestamp/calls.ts b/indexers/consensus-squid/src/types/timestamp/calls.ts deleted file mode 100644 index 60a975536..000000000 --- a/indexers/consensus-squid/src/types/timestamp/calls.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' - -export const set = { - name: 'Timestamp.set', - /** - * See [`Pallet::set`]. - */ - v0: new CallType( - 'Timestamp.set', - sts.struct({ - now: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/timestamp/constants.ts b/indexers/consensus-squid/src/types/timestamp/constants.ts deleted file mode 100644 index 09884d72c..000000000 --- a/indexers/consensus-squid/src/types/timestamp/constants.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minimumPeriod = { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - */ - v0: new ConstantType( - 'Timestamp.MinimumPeriod', - sts.bigint() - ), -} diff --git a/indexers/consensus-squid/src/types/timestamp/storage.ts b/indexers/consensus-squid/src/types/timestamp/storage.ts deleted file mode 100644 index 1bf820c09..000000000 --- a/indexers/consensus-squid/src/types/timestamp/storage.ts +++ /dev/null @@ -1,39 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' - -export const now = { - /** - * The current time for the current block. - */ - v0: new StorageType('Timestamp.Now', 'Default', [], sts.bigint()) as NowV0, -} - -/** - * The current time for the current block. - */ -export interface NowV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const didUpdate = { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Timestamp.DidUpdate', 'Default', [], sts.boolean()) as DidUpdateV0, -} - -/** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - */ -export interface DidUpdateV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/consensus-squid/src/types/transaction-fees/constants.ts b/indexers/consensus-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/consensus-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/consensus-squid/src/types/transaction-fees/events.ts b/indexers/consensus-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/consensus-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/transaction-fees/storage.ts b/indexers/consensus-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/consensus-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/consensus-squid/src/types/transaction-payment/constants.ts b/indexers/consensus-squid/src/types/transaction-payment/constants.ts deleted file mode 100644 index 92856764a..000000000 --- a/indexers/consensus-squid/src/types/transaction-payment/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/transaction-payment/events.ts b/indexers/consensus-squid/src/types/transaction-payment/events.ts deleted file mode 100644 index f2e82a56e..000000000 --- a/indexers/consensus-squid/src/types/transaction-payment/events.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/transaction-payment/storage.ts b/indexers/consensus-squid/src/types/transaction-payment/storage.ts deleted file mode 100644 index 1fe2ddae7..000000000 --- a/indexers/consensus-squid/src/types/transaction-payment/storage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, -} - -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> -} - -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, -} - -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> -} diff --git a/indexers/consensus-squid/src/types/transporter/calls.ts b/indexers/consensus-squid/src/types/transporter/calls.ts deleted file mode 100644 index a3b19e8e7..000000000 --- a/indexers/consensus-squid/src/types/transporter/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transfer = { - name: 'Transporter.transfer', - /** - * See [`Pallet::transfer`]. - */ - v0: new CallType( - 'Transporter.transfer', - sts.struct({ - dstLocation: v0.Location, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/transporter/events.ts b/indexers/consensus-squid/src/types/transporter/events.ts deleted file mode 100644 index 7d966a266..000000000 --- a/indexers/consensus-squid/src/types/transporter/events.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const outgoingTransferInitiated = { - name: 'Transporter.OutgoingTransferInitiated', - /** - * Emits when there is a new outgoing transfer. - */ - v0: new EventType( - 'Transporter.OutgoingTransferInitiated', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), -} - -export const outgoingTransferFailed = { - name: 'Transporter.OutgoingTransferFailed', - /** - * Emits when a given outgoing transfer was failed on dst_chain. - */ - v0: new EventType( - 'Transporter.OutgoingTransferFailed', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - /** - * Error from dst_chain endpoint. - */ - err: v0.DispatchError, - }) - ), -} - -export const outgoingTransferSuccessful = { - name: 'Transporter.OutgoingTransferSuccessful', - /** - * Emits when a given outgoing transfer was successful. - */ - v0: new EventType( - 'Transporter.OutgoingTransferSuccessful', - sts.struct({ - /** - * Destination chain the transfer is bound to. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), -} - -export const incomingTransferSuccessful = { - name: 'Transporter.IncomingTransferSuccessful', - /** - * Emits when a given incoming transfer was successfully processed. - */ - v0: new EventType( - 'Transporter.IncomingTransferSuccessful', - sts.struct({ - /** - * Source chain the transfer is coming from. - */ - chainId: v0.ChainId, - /** - * Id of the transfer. - */ - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/transporter/storage.ts b/indexers/consensus-squid/src/types/transporter/storage.ts deleted file mode 100644 index d96aabc69..000000000 --- a/indexers/consensus-squid/src/types/transporter/storage.ts +++ /dev/null @@ -1,132 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const outgoingTransfers = { - /** - * All the outgoing transfers on this execution environment. - */ - v0: new StorageType('Transporter.OutgoingTransfers', 'Optional', [v0.ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])], v0.Transfer) as OutgoingTransfersV0, -} - -/** - * All the outgoing transfers on this execution environment. - */ -export interface OutgoingTransfersV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<(v0.Transfer | undefined)> - getMany(block: Block, keys: [v0.ChainId, [bigint, bigint]][]): Promise<(v0.Transfer | undefined)[]> - getKeys(block: Block): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key1: v0.ChainId): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeys(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[v0.ChainId, [bigint, bigint]][]> - getPairs(block: Block): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairs(block: Block, key1: v0.ChainId): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairs(block: Block, key1: v0.ChainId, key2: [bigint, bigint]): Promise<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.ChainId, key2: [bigint, bigint]): AsyncIterable<[k: [v0.ChainId, [bigint, bigint]], v: (v0.Transfer | undefined)][]> -} - -export const domainBalances = { - /** - * Domain balances. - */ - v1: new StorageType('Transporter.DomainBalances', 'Default', [v1.DomainId], sts.bigint()) as DomainBalancesV1, -} - -/** - * Domain balances. - */ -export interface DomainBalancesV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: v1.DomainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (bigint | undefined)][]> -} - -export const chainTransfers = { - /** - * A temporary storage that tracks total transfers from this chain. - * Clears on on_initialize for every block. - */ - v1: new StorageType('Transporter.ChainTransfers', 'Default', [], v1.Transfers) as ChainTransfersV1, -} - -/** - * A temporary storage that tracks total transfers from this chain. - * Clears on on_initialize for every block. - */ -export interface ChainTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.Transfers - get(block: Block): Promise<(v1.Transfers | undefined)> -} - -export const unconfirmedTransfers = { - /** - * Storage to track unconfirmed transfers between different chains. - */ - v1: new StorageType('Transporter.UnconfirmedTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as UnconfirmedTransfersV1, -} - -/** - * Storage to track unconfirmed transfers between different chains. - */ -export interface UnconfirmedTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> -} - -export const cancelledTransfers = { - /** - * Storage to track cancelled transfers between different chains. - */ - v1: new StorageType('Transporter.CancelledTransfers', 'Default', [v1.ChainId, v1.ChainId], sts.bigint()) as CancelledTransfersV1, -} - -/** - * Storage to track cancelled transfers between different chains. - */ -export interface CancelledTransfersV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<(bigint | undefined)> - getMany(block: Block, keys: [v1.ChainId, v1.ChainId][]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeys(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[v1.ChainId, v1.ChainId][]> - getPairs(block: Block): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairs(block: Block, key1: v1.ChainId, key2: v1.ChainId): Promise<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.ChainId, key2: v1.ChainId): AsyncIterable<[k: [v1.ChainId, v1.ChainId], v: (bigint | undefined)][]> -} diff --git a/indexers/consensus-squid/src/types/utility/calls.ts b/indexers/consensus-squid/src/types/utility/calls.ts deleted file mode 100644 index d40533708..000000000 --- a/indexers/consensus-squid/src/types/utility/calls.ts +++ /dev/null @@ -1,320 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const batch = { - name: 'Utility.batch', - /** - * See [`Pallet::batch`]. - */ - v0: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v1: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch`]. - */ - v3: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ - v5: new CallType( - 'Utility.batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const asDerivative = { - name: 'Utility.as_derivative', - /** - * See [`Pallet::as_derivative`]. - */ - v0: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v0.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v1: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v1.Call, - }) - ), - /** - * See [`Pallet::as_derivative`]. - */ - v3: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v3.Call, - }) - ), - /** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ - v5: new CallType( - 'Utility.as_derivative', - sts.struct({ - index: sts.number(), - call: v5.Call, - }) - ), -} - -export const batchAll = { - name: 'Utility.batch_all', - /** - * See [`Pallet::batch_all`]. - */ - v0: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v1: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::batch_all`]. - */ - v3: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.batch_all', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const dispatchAs = { - name: 'Utility.dispatch_as', - /** - * See [`Pallet::dispatch_as`]. - */ - v0: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v0.OriginCaller, - call: v0.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v1: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v1.OriginCaller, - call: v1.Call, - }) - ), - /** - * See [`Pallet::dispatch_as`]. - */ - v3: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v3.OriginCaller, - call: v3.Call, - }) - ), - /** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ - v5: new CallType( - 'Utility.dispatch_as', - sts.struct({ - asOrigin: v5.OriginCaller, - call: v5.Call, - }) - ), -} - -export const forceBatch = { - name: 'Utility.force_batch', - /** - * See [`Pallet::force_batch`]. - */ - v0: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v0.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v1: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v1.Call), - }) - ), - /** - * See [`Pallet::force_batch`]. - */ - v3: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v3.Call), - }) - ), - /** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ - v5: new CallType( - 'Utility.force_batch', - sts.struct({ - calls: sts.array(() => v5.Call), - }) - ), -} - -export const withWeight = { - name: 'Utility.with_weight', - /** - * See [`Pallet::with_weight`]. - */ - v0: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v0.Call, - weight: v0.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v1: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v1.Call, - weight: v1.Weight, - }) - ), - /** - * See [`Pallet::with_weight`]. - */ - v3: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v3.Call, - weight: v3.Weight, - }) - ), - /** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ - v5: new CallType( - 'Utility.with_weight', - sts.struct({ - call: v5.Call, - weight: v5.Weight, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/utility/constants.ts b/indexers/consensus-squid/src/types/utility/constants.ts deleted file mode 100644 index e82480598..000000000 --- a/indexers/consensus-squid/src/types/utility/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const batchedCallsLimit = { - /** - * The limit on the number of batched calls. - */ - v0: new ConstantType( - 'Utility.batched_calls_limit', - sts.number() - ), -} diff --git a/indexers/consensus-squid/src/types/utility/events.ts b/indexers/consensus-squid/src/types/utility/events.ts deleted file mode 100644 index 1652db0da..000000000 --- a/indexers/consensus-squid/src/types/utility/events.ts +++ /dev/null @@ -1,76 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const batchInterrupted = { - name: 'Utility.BatchInterrupted', - /** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ - v0: new EventType( - 'Utility.BatchInterrupted', - sts.struct({ - index: sts.number(), - error: v0.DispatchError, - }) - ), -} - -export const batchCompleted = { - name: 'Utility.BatchCompleted', - /** - * Batch of dispatches completed fully with no error. - */ - v0: new EventType( - 'Utility.BatchCompleted', - sts.unit() - ), -} - -export const batchCompletedWithErrors = { - name: 'Utility.BatchCompletedWithErrors', - /** - * Batch of dispatches completed but has errors. - */ - v0: new EventType( - 'Utility.BatchCompletedWithErrors', - sts.unit() - ), -} - -export const itemCompleted = { - name: 'Utility.ItemCompleted', - /** - * A single item within a Batch of dispatches has completed with no error. - */ - v0: new EventType( - 'Utility.ItemCompleted', - sts.unit() - ), -} - -export const itemFailed = { - name: 'Utility.ItemFailed', - /** - * A single item within a Batch of dispatches has completed with error. - */ - v0: new EventType( - 'Utility.ItemFailed', - sts.struct({ - error: v0.DispatchError, - }) - ), -} - -export const dispatchedAs = { - name: 'Utility.DispatchedAs', - /** - * A call was dispatched. - */ - v0: new EventType( - 'Utility.DispatchedAs', - sts.struct({ - result: sts.result(() => sts.unit(), () => v0.DispatchError), - }) - ), -} diff --git a/indexers/consensus-squid/src/types/v0.ts b/indexers/consensus-squid/src/types/v0.ts deleted file mode 100644 index 14718c7e9..000000000 --- a/indexers/consensus-squid/src/types/v0.ts +++ /dev/null @@ -1,4642 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface Transfer { - amount: bigint - sender: Location - receiver: Location -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export const Transfer: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - sender: Location, - receiver: Location, - } -}) - -export interface BlockMessages { - outbox: [ChainId, [bigint, bigint], MessageWeightTag][] - inboxResponses: [ChainId, [bigint, bigint], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export const BlockMessages: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface Message { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - payload: VersionedPayload - lastDeliveredMessageResponseNonce?: (bigint | undefined) -} - -export type VersionedPayload = VersionedPayload_V0 - -export interface VersionedPayload_V0 { - __kind: 'V0' - value: Payload -} - -export type Payload = Payload_Endpoint | Payload_Protocol - -export interface Payload_Endpoint { - __kind: 'Endpoint' - value: Type_294 -} - -export interface Payload_Protocol { - __kind: 'Protocol' - value: RequestResponse -} - -export type RequestResponse = RequestResponse_Request | RequestResponse_Response - -export interface RequestResponse_Request { - __kind: 'Request' - value: ProtocolMessageRequest -} - -export interface RequestResponse_Response { - __kind: 'Response' - value: Result -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -export type ProtocolMessageRequest = ProtocolMessageRequest_ChannelClose | ProtocolMessageRequest_ChannelOpen - -export interface ProtocolMessageRequest_ChannelClose { - __kind: 'ChannelClose' -} - -export interface ProtocolMessageRequest_ChannelOpen { - __kind: 'ChannelOpen' - value: InitiateChannelParams -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -export interface FeeModel { - relayFee: bigint -} - -export type Type_294 = Type_294_Request | Type_294_Response - -export interface Type_294_Request { - __kind: 'Request' - value: EndpointRequest -} - -export interface Type_294_Response { - __kind: 'Response' - value: Result -} - -export interface EndpointRequest { - srcEndpoint: Endpoint - dstEndpoint: Endpoint - payload: Bytes -} - -export const Message: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - payload: VersionedPayload, - lastDeliveredMessageResponseNonce: sts.option(() => sts.bigint()), - } -}) - -export const VersionedPayload: sts.Type = sts.closedEnum(() => { - return { - V0: Payload, - } -}) - -export const Payload: sts.Type = sts.closedEnum(() => { - return { - Endpoint: Type_294, - Protocol: RequestResponse, - } -}) - -export const RequestResponse: sts.Type = sts.closedEnum(() => { - return { - Request: ProtocolMessageRequest, - Response: sts.result(() => sts.unit(), () => DispatchError), - } -}) - -export const ProtocolMessageRequest: sts.Type = sts.closedEnum(() => { - return { - ChannelClose: sts.unit(), - ChannelOpen: InitiateChannelParams, - } -}) - -export const Type_294: sts.Type = sts.closedEnum(() => { - return { - Request: EndpointRequest, - Response: sts.result(() => sts.bytes(), () => DispatchError), - } -}) - -export const EndpointRequest: sts.Type = sts.struct(() => { - return { - srcEndpoint: Endpoint, - dstEndpoint: Endpoint, - payload: sts.bytes(), - } -}) - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type Releases = Releases_V1Ancient | Releases_V2 - -export interface Releases_V1Ancient { - __kind: 'V1Ancient' -} - -export interface Releases_V2 { - __kind: 'V2' -} - -export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } -}) - -export type FixedU128 = bigint - -export const FixedU128 = sts.bigint() - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export interface OffenceDetails { - offender: Public -} - -export const OffenceDetails: sts.Type = sts.struct(() => { - return { - offender: Public, - } -}) - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/consensus-squid/src/types/v1.ts b/indexers/consensus-squid/src/types/v1.ts deleted file mode 100644 index c090e8b5b..000000000 --- a/indexers/consensus-squid/src/types/v1.ts +++ /dev/null @@ -1,4097 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - } -}) - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.struct(() => { - return { - consensusChainBlockInfo: BlockInfo, - consensusChainStateRoot: H256, - domainProof: sts.option(() => sts.tuple(() => [BlockInfo, StorageProof])), - messageProof: StorageProof, - } -}) - -export const BlockInfo: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - } -}) - -export interface BlockInfo { - blockNumber: number - blockHash: H256 -} - -export interface Proof { - consensusChainBlockInfo: BlockInfo - consensusChainStateRoot: H256 - domainProof?: ([BlockInfo, StorageProof] | undefined) - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export interface FeeModel { - relayFee: bigint -} - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_relay_message | MessengerCall_relay_message_response - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - switch_domain: sts.enumStruct({ - operatorId: sts.bigint(), - newDomainId: DomainId, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_switch_domain | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::switch_domain`]. - */ -export interface DomainsCall_switch_domain { - __kind: 'switch_domain' - operatorId: bigint - newDomainId: DomainId -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AccountId32 = sts.bytes() diff --git a/indexers/consensus-squid/src/types/v3.ts b/indexers/consensus-squid/src/types/v3.ts deleted file mode 100644 index 7d6b8f87e..000000000 --- a/indexers/consensus-squid/src/types/v3.ts +++ /dev/null @@ -1,2472 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface Channel { - channelId: bigint - state: ChannelState - nextInboxNonce: bigint - nextOutboxNonce: bigint - latestResponseReceivedMessageNonce?: (bigint | undefined) - maxOutgoingMessages: number - fee: FeeModel - maybeOwner?: (AccountId32 | undefined) -} - -export interface FeeModel { - relayFee: bigint -} - -export type ChannelState = ChannelState_Closed | ChannelState_Initiated | ChannelState_Open - -export interface ChannelState_Closed { - __kind: 'Closed' -} - -export interface ChannelState_Initiated { - __kind: 'Initiated' -} - -export interface ChannelState_Open { - __kind: 'Open' -} - -export const Channel: sts.Type = sts.struct(() => { - return { - channelId: sts.bigint(), - state: ChannelState, - nextInboxNonce: sts.bigint(), - nextOutboxNonce: sts.bigint(), - latestResponseReceivedMessageNonce: sts.option(() => sts.bigint()), - maxOutgoingMessages: sts.number(), - fee: FeeModel, - maybeOwner: sts.option(() => AccountId32), - } -}) - -export const FeeModel: sts.Type = sts.struct(() => { - return { - relayFee: sts.bigint(), - } -}) - -export const ChannelState: sts.Type = sts.closedEnum(() => { - return { - Closed: sts.unit(), - Initiated: sts.unit(), - Open: sts.unit(), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export type DomainId = number - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export const DomainId = sts.number() - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Proof, - weightTag: MessageWeightTag, - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export const Proof: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Type_237, - } -}) - -export const Type_237: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Type_237 { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type H256 = Bytes - -export const EncodableOpaqueLeaf = sts.bytes() - -export const H256 = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Type_237 -} - -export type EncodableOpaqueLeaf = Bytes - -export type Proof = Proof_Consensus | Proof_Domain - -export interface Proof_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Proof_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Proof - weightTag: MessageWeightTag -} - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -/** - * See [`Pallet::claim`]. - */ -export interface VestingCall_claim { - __kind: 'claim' -} - -/** - * See [`Pallet::claim_for`]. - */ -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -/** - * See [`Pallet::update_vesting_schedules`]. - */ -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -/** - * See [`Pallet::vested_transfer`]. - */ -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * See [`Pallet::as_derivative`]. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * See [`Pallet::batch`]. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * See [`Pallet::batch_all`]. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * See [`Pallet::dispatch_as`]. - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * See [`Pallet::force_batch`]. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * See [`Pallet::with_weight`]. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * See [`Pallet::transfer`]. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * See [`Pallet::set`]. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * See [`Pallet::apply_authorized_upgrade`]. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * See [`Pallet::authorize_upgrade`]. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * See [`Pallet::kill_prefix`]. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * See [`Pallet::kill_storage`]. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * See [`Pallet::remark`]. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * See [`Pallet::remark_with_event`]. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * See [`Pallet::set_code`]. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * See [`Pallet::set_code_without_checks`]. - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * See [`Pallet::set_heap_pages`]. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * See [`Pallet::set_storage`]. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * See [`Pallet::remove_key`]. - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * See [`Pallet::set_key`]. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * See [`Pallet::sudo`]. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * See [`Pallet::sudo_as`]. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * See [`Pallet::sudo_unchecked_weight`]. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export const Public = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export type Public = Bytes - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * See [`Pallet::enable_authoring_by_anyone`]. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * See [`Pallet::enable_rewards_at`]. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * See [`Pallet::enable_solution_range_adjustment`]. - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * See [`Pallet::report_equivocation`]. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * See [`Pallet::store_segment_headers`]. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * See [`Pallet::vote`]. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * See [`Pallet::set_enable_balance_transfers`]. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * See [`Pallet::set_enable_domains`]. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * See [`Pallet::set_enable_dynamic_cost_of_storage`]. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * See [`Pallet::set_enable_non_root_calls`]. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * See [`Pallet::update_issuance_params`]. - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - feeModel: FeeModel, - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number - feeModel: FeeModel -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * See [`Pallet::close_channel`]. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * See [`Pallet::initiate_channel`]. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * See [`Pallet::initiate_domain_update_chain_allowlist`]. - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::relay_message`]. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::relay_message_response`]. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * See [`Pallet::update_consensus_chain_allowlist`]. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * See [`Pallet::update_domain_allowlist`]. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_operator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -/** - * See [`Pallet::deregister_operator`]. - */ -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * See [`Pallet::force_staking_epoch_transition`]. - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -/** - * See [`Pallet::instantiate_domain`]. - */ -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -/** - * See [`Pallet::nominate_operator`]. - */ -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -/** - * See [`Pallet::register_domain_runtime`]. - */ -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::register_operator`]. - */ -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig -} - -/** - * See [`Pallet::submit_bundle`]. - */ -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -/** - * See [`Pallet::submit_fraud_proof`]. - */ -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * See [`Pallet::unlock_funds`]. - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * See [`Pallet::unlock_operator`]. - */ -export interface DomainsCall_unlock_operator { - __kind: 'unlock_operator' - operatorId: bigint -} - -/** - * See [`Pallet::update_domain_operator_allow_list`]. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -/** - * See [`Pallet::upgrade_domain_runtime`]. - */ -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -/** - * See [`Pallet::withdraw_stake`]. - */ -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * See [`Pallet::force_set_balance`]. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * See [`Pallet::force_transfer`]. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::force_unreserve`]. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * See [`Pallet::transfer_all`]. - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * See [`Pallet::transfer_allow_death`]. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::transfer_keep_alive`]. - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * See [`Pallet::upgrade_accounts`]. - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} diff --git a/indexers/consensus-squid/src/types/v5.ts b/indexers/consensus-squid/src/types/v5.ts deleted file mode 100644 index bbfb77cef..000000000 --- a/indexers/consensus-squid/src/types/v5.ts +++ /dev/null @@ -1,4370 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Perbill = sts.number() - -export interface MessageWeightTags { - outbox: [[ChainId, [bigint, bigint]], MessageWeightTag][] - inboxResponses: [[ChainId, [bigint, bigint]], MessageWeightTag][] -} - -export type MessageWeightTag = MessageWeightTag_EndpointRequest | MessageWeightTag_EndpointResponse | MessageWeightTag_None | MessageWeightTag_ProtocolChannelClose | MessageWeightTag_ProtocolChannelOpen - -export interface MessageWeightTag_EndpointRequest { - __kind: 'EndpointRequest' - value: Endpoint -} - -export interface MessageWeightTag_EndpointResponse { - __kind: 'EndpointResponse' - value: Endpoint -} - -export interface MessageWeightTag_None { - __kind: 'None' -} - -export interface MessageWeightTag_ProtocolChannelClose { - __kind: 'ProtocolChannelClose' -} - -export interface MessageWeightTag_ProtocolChannelOpen { - __kind: 'ProtocolChannelOpen' -} - -export type Endpoint = Endpoint_Id - -export interface Endpoint_Id { - __kind: 'Id' - value: bigint -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export const MessageWeightTags: sts.Type = sts.struct(() => { - return { - outbox: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - inboxResponses: sts.array(() => sts.tuple(() => [sts.tuple(() => [ChainId, sts.tuple(() => [sts.bigint(), sts.bigint()])]), MessageWeightTag])), - } -}) - -export const MessageWeightTag: sts.Type = sts.closedEnum(() => { - return { - EndpointRequest: Endpoint, - EndpointResponse: Endpoint, - None: sts.unit(), - ProtocolChannelClose: sts.unit(), - ProtocolChannelOpen: sts.unit(), - } -}) - -export const Endpoint: sts.Type = sts.closedEnum(() => { - return { - Id: sts.bigint(), - } -}) - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const CrossDomainMessage: sts.Type = sts.struct(() => { - return { - srcChainId: ChainId, - dstChainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - proof: Type_251, - weightTag: MessageWeightTag, - } -}) - -export const Type_251: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - messageProof: StorageProof, - }), - Domain: sts.enumStruct({ - consensusChainMmrProof: ConsensusChainMmrLeafProof, - domainProof: StorageProof, - messageProof: StorageProof, - }), - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export type EncodableOpaqueLeaf = Bytes - -export type Type_251 = Type_251_Consensus | Type_251_Domain - -export interface Type_251_Consensus { - __kind: 'Consensus' - consensusChainMmrProof: ConsensusChainMmrLeafProof - messageProof: StorageProof -} - -export interface Type_251_Domain { - __kind: 'Domain' - consensusChainMmrProof: ConsensusChainMmrLeafProof - domainProof: StorageProof - messageProof: StorageProof -} - -export interface CrossDomainMessage { - srcChainId: ChainId - dstChainId: ChainId - channelId: bigint - nonce: bigint - proof: Type_251 - weightTag: MessageWeightTag -} - -export const InitiateChannelParams: sts.Type = sts.struct(() => { - return { - maxOutgoingMessages: sts.number(), - } -}) - -export interface InitiateChannelParams { - maxOutgoingMessages: number -} - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const OriginCaller: sts.Type = sts.closedEnum(() => { - return { - Void: Void, - system: RawOrigin, - } -}) - -export const RawOrigin: sts.Type = sts.closedEnum(() => { - return { - None: sts.unit(), - Root: sts.unit(), - Signed: AccountId32, - } -}) - -export type RawOrigin = RawOrigin_None | RawOrigin_Root | RawOrigin_Signed - -export interface RawOrigin_None { - __kind: 'None' -} - -export interface RawOrigin_Root { - __kind: 'Root' -} - -export interface RawOrigin_Signed { - __kind: 'Signed' - value: AccountId32 -} - -export const Void: sts.Type = sts.closedEnum(() => { - return { - } -}) - -export type Void = never - -export type OriginCaller = OriginCaller_Void | OriginCaller_system - -export interface OriginCaller_Void { - __kind: 'Void' - value: Void -} - -export interface OriginCaller_system { - __kind: 'system' - value: RawOrigin -} - -export const Call: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesCall, - Domains: DomainsCall, - Messenger: MessengerCall, - Rewards: RewardsCall, - RuntimeConfigs: RuntimeConfigsCall, - Subspace: SubspaceCall, - Sudo: SudoCall, - System: SystemCall, - Timestamp: TimestampCall, - Transporter: TransporterCall, - Utility: UtilityCall, - Vesting: VestingCall, - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const VestingCall: sts.Type = sts.closedEnum(() => { - return { - claim: sts.unit(), - claim_for: sts.enumStruct({ - dest: MultiAddress, - }), - update_vesting_schedules: sts.enumStruct({ - who: MultiAddress, - vestingSchedules: sts.array(() => VestingSchedule), - }), - vested_transfer: sts.enumStruct({ - dest: MultiAddress, - schedule: VestingSchedule, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type VestingCall = VestingCall_claim | VestingCall_claim_for | VestingCall_update_vesting_schedules | VestingCall_vested_transfer - -export interface VestingCall_claim { - __kind: 'claim' -} - -export interface VestingCall_claim_for { - __kind: 'claim_for' - dest: MultiAddress -} - -export interface VestingCall_update_vesting_schedules { - __kind: 'update_vesting_schedules' - who: MultiAddress - vestingSchedules: VestingSchedule[] -} - -export interface VestingCall_vested_transfer { - __kind: 'vested_transfer' - dest: MultiAddress - schedule: VestingSchedule -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const UtilityCall: sts.Type = sts.closedEnum(() => { - return { - as_derivative: sts.enumStruct({ - index: sts.number(), - call: Call, - }), - batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - batch_all: sts.enumStruct({ - calls: sts.array(() => Call), - }), - dispatch_as: sts.enumStruct({ - asOrigin: OriginCaller, - call: Call, - }), - force_batch: sts.enumStruct({ - calls: sts.array(() => Call), - }), - with_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type UtilityCall = UtilityCall_as_derivative | UtilityCall_batch | UtilityCall_batch_all | UtilityCall_dispatch_as | UtilityCall_force_batch | UtilityCall_with_weight - -/** - * Send a call through an indexed pseudonym of the sender. - * - * Filter from origin are passed along. The call will be dispatched with an origin which - * use the same filter as the origin of this call. - * - * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. - * because you expect `proxy` to have been used prior in the call stack and you do not want - * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` - * in the Multisig pallet instead. - * - * NOTE: Prior to version *12, this was called `as_limited_sub`. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface UtilityCall_as_derivative { - __kind: 'as_derivative' - index: number - call: Call -} - -/** - * Send a batch of dispatch calls. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - * - * This will return `Ok` in all circumstances. To determine the success of the batch, an - * event is deposited. If a call failed and the batch was interrupted, then the - * `BatchInterrupted` event is deposited, along with the number of successful calls made - * and the error of the failed call. If all were successful, then the `BatchCompleted` - * event is deposited. - */ -export interface UtilityCall_batch { - __kind: 'batch' - calls: Call[] -} - -/** - * Send a batch of dispatch calls and atomically execute them. - * The whole transaction will rollback and fail if any of the calls failed. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatched without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_batch_all { - __kind: 'batch_all' - calls: Call[] -} - -/** - * Dispatches a function call with a provided origin. - * - * The dispatch origin for this call must be _Root_. - * - * ## Complexity - * - O(1). - */ -export interface UtilityCall_dispatch_as { - __kind: 'dispatch_as' - asOrigin: OriginCaller - call: Call -} - -/** - * Send a batch of dispatch calls. - * Unlike `batch`, it allows errors and won't interrupt. - * - * May be called from any origin except `None`. - * - * - `calls`: The calls to be dispatched from the same origin. The number of call must not - * exceed the constant: `batched_calls_limit` (available in constant metadata). - * - * If origin is root then the calls are dispatch without checking origin filter. (This - * includes bypassing `frame_system::Config::BaseCallFilter`). - * - * ## Complexity - * - O(C) where C is the number of calls to be batched. - */ -export interface UtilityCall_force_batch { - __kind: 'force_batch' - calls: Call[] -} - -/** - * Dispatch a function call with a specified weight. - * - * This function does not check the weight of the call, and instead allows the - * Root origin to specify the weight of the call. - * - * The dispatch origin for this call must be _Root_. - */ -export interface UtilityCall_with_weight { - __kind: 'with_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TransporterCall: sts.Type = sts.closedEnum(() => { - return { - transfer: sts.enumStruct({ - dstLocation: Location, - amount: sts.bigint(), - }), - } -}) - -export const Location: sts.Type = sts.struct(() => { - return { - chainId: ChainId, - accountId: MultiAccountId, - } -}) - -export interface Location { - chainId: ChainId - accountId: MultiAccountId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TransporterCall = TransporterCall_transfer - -/** - * Initiates transfer of funds from account on src_chain to account on dst_chain. - * Funds are burned on src_chain first and are minted on dst_chain using Messenger. - */ -export interface TransporterCall_transfer { - __kind: 'transfer' - dstLocation: Location - amount: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const TimestampCall: sts.Type = sts.closedEnum(() => { - return { - set: sts.enumStruct({ - now: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type TimestampCall = TimestampCall_set - -/** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - */ -export interface TimestampCall_set { - __kind: 'set' - now: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SystemCall: sts.Type = sts.closedEnum(() => { - return { - apply_authorized_upgrade: sts.enumStruct({ - code: sts.bytes(), - }), - authorize_upgrade: sts.enumStruct({ - codeHash: H256, - }), - authorize_upgrade_without_checks: sts.enumStruct({ - codeHash: H256, - }), - kill_prefix: sts.enumStruct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }), - kill_storage: sts.enumStruct({ - keys: sts.array(() => sts.bytes()), - }), - remark: sts.enumStruct({ - remark: sts.bytes(), - }), - remark_with_event: sts.enumStruct({ - remark: sts.bytes(), - }), - set_code: sts.enumStruct({ - code: sts.bytes(), - }), - set_code_without_checks: sts.enumStruct({ - code: sts.bytes(), - }), - set_heap_pages: sts.enumStruct({ - pages: sts.bigint(), - }), - set_storage: sts.enumStruct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SystemCall = SystemCall_apply_authorized_upgrade | SystemCall_authorize_upgrade | SystemCall_authorize_upgrade_without_checks | SystemCall_kill_prefix | SystemCall_kill_storage | SystemCall_remark | SystemCall_remark_with_event | SystemCall_set_code | SystemCall_set_code_without_checks | SystemCall_set_heap_pages | SystemCall_set_storage - -/** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - */ -export interface SystemCall_apply_authorized_upgrade { - __kind: 'apply_authorized_upgrade' - code: Bytes -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade { - __kind: 'authorize_upgrade' - codeHash: H256 -} - -/** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - */ -export interface SystemCall_authorize_upgrade_without_checks { - __kind: 'authorize_upgrade_without_checks' - codeHash: H256 -} - -/** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - */ -export interface SystemCall_kill_prefix { - __kind: 'kill_prefix' - prefix: Bytes - subkeys: number -} - -/** - * Kill some items from storage. - */ -export interface SystemCall_kill_storage { - __kind: 'kill_storage' - keys: Bytes[] -} - -/** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - */ -export interface SystemCall_remark { - __kind: 'remark' - remark: Bytes -} - -/** - * Make some on-chain remark and emit event. - */ -export interface SystemCall_remark_with_event { - __kind: 'remark_with_event' - remark: Bytes -} - -/** - * Set the new runtime code. - */ -export interface SystemCall_set_code { - __kind: 'set_code' - code: Bytes -} - -/** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - */ -export interface SystemCall_set_code_without_checks { - __kind: 'set_code_without_checks' - code: Bytes -} - -/** - * Set the number of pages in the WebAssembly environment's heap. - */ -export interface SystemCall_set_heap_pages { - __kind: 'set_heap_pages' - pages: bigint -} - -/** - * Set some items of storage. - */ -export interface SystemCall_set_storage { - __kind: 'set_storage' - items: [Bytes, Bytes][] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SudoCall: sts.Type = sts.closedEnum(() => { - return { - remove_key: sts.unit(), - set_key: sts.enumStruct({ - new: MultiAddress, - }), - sudo: sts.enumStruct({ - call: Call, - }), - sudo_as: sts.enumStruct({ - who: MultiAddress, - call: Call, - }), - sudo_unchecked_weight: sts.enumStruct({ - call: Call, - weight: Weight, - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SudoCall = SudoCall_remove_key | SudoCall_set_key | SudoCall_sudo | SudoCall_sudo_as | SudoCall_sudo_unchecked_weight - -/** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - */ -export interface SudoCall_remove_key { - __kind: 'remove_key' -} - -/** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - */ -export interface SudoCall_set_key { - __kind: 'set_key' - new: MultiAddress -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - */ -export interface SudoCall_sudo { - __kind: 'sudo' - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_as { - __kind: 'sudo_as' - who: MultiAddress - call: Call -} - -/** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - */ -export interface SudoCall_sudo_unchecked_weight { - __kind: 'sudo_unchecked_weight' - call: Call - weight: Weight -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const SubspaceCall: sts.Type = sts.closedEnum(() => { - return { - enable_authoring_by_anyone: sts.unit(), - enable_rewards_at: sts.enumStruct({ - enableRewardsAt: EnableRewardsAt, - }), - enable_solution_range_adjustment: sts.enumStruct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }), - report_equivocation: sts.enumStruct({ - equivocationProof: EquivocationProof, - }), - store_segment_headers: sts.enumStruct({ - segmentHeaders: sts.array(() => SegmentHeader), - }), - vote: sts.enumStruct({ - signedVote: SignedVote, - }), - } -}) - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Signature = sts.bytes() - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export interface Scalar { - inner: Bytes -} - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export const PieceOffset = sts.number() - -export const HistorySize = sts.bigint() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type PieceOffset = number - -export type HistorySize = bigint - -export const Slot = sts.bigint() - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type Slot = bigint - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export type Signature = Bytes - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export interface Digest { - logs: DigestItem[] -} - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type SubspaceCall = SubspaceCall_enable_authoring_by_anyone | SubspaceCall_enable_rewards_at | SubspaceCall_enable_solution_range_adjustment | SubspaceCall_report_equivocation | SubspaceCall_store_segment_headers | SubspaceCall_vote - -/** - * Enable storage access for all users. - */ -export interface SubspaceCall_enable_authoring_by_anyone { - __kind: 'enable_authoring_by_anyone' -} - -/** - * Enable rewards for blocks and votes at specified block height. - */ -export interface SubspaceCall_enable_rewards_at { - __kind: 'enable_rewards_at' - enableRewardsAt: EnableRewardsAt -} - -/** - * Enable solution range adjustment after every era. - * Note: No effect on the solution range for the current era - */ -export interface SubspaceCall_enable_solution_range_adjustment { - __kind: 'enable_solution_range_adjustment' - solutionRangeOverride?: (bigint | undefined) - votingSolutionRangeOverride?: (bigint | undefined) -} - -/** - * Report farmer equivocation/misbehavior. This method will verify the equivocation proof. - * If valid, the offence will be reported. - * - * This extrinsic must be called unsigned and it is expected that only block authors will - * call it (validated in `ValidateUnsigned`), as such if the block author is defined it - * will be defined as the equivocation reporter. - */ -export interface SubspaceCall_report_equivocation { - __kind: 'report_equivocation' - equivocationProof: EquivocationProof -} - -/** - * Submit new segment header to the blockchain. This is an inherent extrinsic and part of - * the Subspace consensus logic. - */ -export interface SubspaceCall_store_segment_headers { - __kind: 'store_segment_headers' - segmentHeaders: SegmentHeader[] -} - -/** - * Farmer vote, currently only used for extra rewards to farmers. - */ -export interface SubspaceCall_vote { - __kind: 'vote' - signedVote: SignedVote -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RuntimeConfigsCall: sts.Type = sts.closedEnum(() => { - return { - set_enable_balance_transfers: sts.enumStruct({ - enableBalanceTransfers: sts.boolean(), - }), - set_enable_domains: sts.enumStruct({ - enableDomains: sts.boolean(), - }), - set_enable_dynamic_cost_of_storage: sts.enumStruct({ - enableDynamicCostOfStorage: sts.boolean(), - }), - set_enable_non_root_calls: sts.enumStruct({ - enableNonRootCalls: sts.boolean(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RuntimeConfigsCall = RuntimeConfigsCall_set_enable_balance_transfers | RuntimeConfigsCall_set_enable_domains | RuntimeConfigsCall_set_enable_dynamic_cost_of_storage | RuntimeConfigsCall_set_enable_non_root_calls - -/** - * Enable or disable balance transfers for all users. - */ -export interface RuntimeConfigsCall_set_enable_balance_transfers { - __kind: 'set_enable_balance_transfers' - enableBalanceTransfers: boolean -} - -/** - * Change enable domains state. - */ -export interface RuntimeConfigsCall_set_enable_domains { - __kind: 'set_enable_domains' - enableDomains: boolean -} - -/** - * Enable or disable dynamic cost of storage. - */ -export interface RuntimeConfigsCall_set_enable_dynamic_cost_of_storage { - __kind: 'set_enable_dynamic_cost_of_storage' - enableDynamicCostOfStorage: boolean -} - -/** - * Enable or disable calls from non-root users. - */ -export interface RuntimeConfigsCall_set_enable_non_root_calls { - __kind: 'set_enable_non_root_calls' - enableNonRootCalls: boolean -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const RewardsCall: sts.Type = sts.closedEnum(() => { - return { - update_issuance_params: sts.enumStruct({ - proposerSubsidyPoints: sts.array(() => RewardPoint), - voterSubsidyPoints: sts.array(() => RewardPoint), - }), - } -}) - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) - -export interface RewardPoint { - block: number - subsidy: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type RewardsCall = RewardsCall_update_issuance_params - -/** - * Update dynamic issuance parameters - */ -export interface RewardsCall_update_issuance_params { - __kind: 'update_issuance_params' - proposerSubsidyPoints: RewardPoint[] - voterSubsidyPoints: RewardPoint[] -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const MessengerCall: sts.Type = sts.closedEnum(() => { - return { - close_channel: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - initiate_channel: sts.enumStruct({ - dstChainId: ChainId, - params: InitiateChannelParams, - }), - initiate_domain_update_chain_allowlist: sts.enumStruct({ - domainId: DomainId, - update: ChainAllowlistUpdate, - }), - relay_message: sts.enumStruct({ - msg: CrossDomainMessage, - }), - relay_message_response: sts.enumStruct({ - msg: CrossDomainMessage, - }), - update_consensus_chain_allowlist: sts.enumStruct({ - update: ChainAllowlistUpdate, - }), - update_domain_allowlist: sts.enumStruct({ - updates: DomainAllowlistUpdates, - }), - } -}) - -export const DomainAllowlistUpdates: sts.Type = sts.struct(() => { - return { - allowChains: sts.array(() => ChainId), - removeChains: sts.array(() => ChainId), - } -}) - -export interface DomainAllowlistUpdates { - allowChains: ChainId[] - removeChains: ChainId[] -} - -export const ChainAllowlistUpdate: sts.Type = sts.closedEnum(() => { - return { - Add: ChainId, - Remove: ChainId, - } -}) - -export type ChainAllowlistUpdate = ChainAllowlistUpdate_Add | ChainAllowlistUpdate_Remove - -export interface ChainAllowlistUpdate_Add { - __kind: 'Add' - value: ChainId -} - -export interface ChainAllowlistUpdate_Remove { - __kind: 'Remove' - value: ChainId -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type MessengerCall = MessengerCall_close_channel | MessengerCall_initiate_channel | MessengerCall_initiate_domain_update_chain_allowlist | MessengerCall_relay_message | MessengerCall_relay_message_response | MessengerCall_update_consensus_chain_allowlist | MessengerCall_update_domain_allowlist - -/** - * An open channel is closed with a foreign chain. - * Channel is set to Closed and do not accept or receive any messages. - */ -export interface MessengerCall_close_channel { - __kind: 'close_channel' - chainId: ChainId - channelId: bigint -} - -/** - * A new Channel is initiated with a foreign chain. - * Next Channel ID is used to assign the new channel. - * Channel is set to initiated and do not accept or receive any messages. - */ -export interface MessengerCall_initiate_channel { - __kind: 'initiate_channel' - dstChainId: ChainId - params: InitiateChannelParams -} - -/** - * A call to initiate chain allowlist update on domains - */ -export interface MessengerCall_initiate_domain_update_chain_allowlist { - __kind: 'initiate_domain_update_chain_allowlist' - domainId: DomainId - update: ChainAllowlistUpdate -} - -/** - * Receives an Inbox message that needs to be validated and processed. - */ -export interface MessengerCall_relay_message { - __kind: 'relay_message' - msg: CrossDomainMessage -} - -/** - * Receives a response from the dst_chain for a message in Outbox. - */ -export interface MessengerCall_relay_message_response { - __kind: 'relay_message_response' - msg: CrossDomainMessage -} - -/** - * A call to update consensus chain allow list. - */ -export interface MessengerCall_update_consensus_chain_allowlist { - __kind: 'update_consensus_chain_allowlist' - update: ChainAllowlistUpdate -} - -/** - * An inherent call to update allowlist for domain. - */ -export interface MessengerCall_update_domain_allowlist { - __kind: 'update_domain_allowlist' - updates: DomainAllowlistUpdates -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const DomainsCall: sts.Type = sts.closedEnum(() => { - return { - deregister_operator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - force_staking_epoch_transition: sts.enumStruct({ - domainId: DomainId, - }), - instantiate_domain: sts.enumStruct({ - domainConfig: DomainConfig, - }), - nominate_operator: sts.enumStruct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }), - register_domain_runtime: sts.enumStruct({ - runtimeName: sts.string(), - runtimeType: RuntimeType, - rawGenesisStorage: sts.bytes(), - }), - register_operator: sts.enumStruct({ - domainId: DomainId, - amount: sts.bigint(), - config: OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }), - set_permissioned_action_allowed_by: sts.enumStruct({ - permissionedActionAllowedBy: PermissionedActionAllowedBy, - }), - submit_bundle: sts.enumStruct({ - opaqueBundle: Bundle, - }), - submit_fraud_proof: sts.enumStruct({ - fraudProof: FraudProof, - }), - unlock_funds: sts.enumStruct({ - operatorId: sts.bigint(), - }), - unlock_nominator: sts.enumStruct({ - operatorId: sts.bigint(), - }), - update_domain_operator_allow_list: sts.enumStruct({ - domainId: DomainId, - operatorAllowList: OperatorAllowList, - }), - upgrade_domain_runtime: sts.enumStruct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }), - withdraw_stake: sts.enumStruct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type DomainsCall = DomainsCall_deregister_operator | DomainsCall_force_staking_epoch_transition | DomainsCall_instantiate_domain | DomainsCall_nominate_operator | DomainsCall_register_domain_runtime | DomainsCall_register_operator | DomainsCall_set_permissioned_action_allowed_by | DomainsCall_submit_bundle | DomainsCall_submit_fraud_proof | DomainsCall_unlock_funds | DomainsCall_unlock_nominator | DomainsCall_update_domain_operator_allow_list | DomainsCall_upgrade_domain_runtime | DomainsCall_withdraw_stake - -export interface DomainsCall_deregister_operator { - __kind: 'deregister_operator' - operatorId: bigint -} - -/** - * Force staking epoch transition for a given domain - */ -export interface DomainsCall_force_staking_epoch_transition { - __kind: 'force_staking_epoch_transition' - domainId: DomainId -} - -export interface DomainsCall_instantiate_domain { - __kind: 'instantiate_domain' - domainConfig: DomainConfig -} - -export interface DomainsCall_nominate_operator { - __kind: 'nominate_operator' - operatorId: bigint - amount: bigint -} - -export interface DomainsCall_register_domain_runtime { - __kind: 'register_domain_runtime' - runtimeName: string - runtimeType: RuntimeType - rawGenesisStorage: Bytes -} - -export interface DomainsCall_register_operator { - __kind: 'register_operator' - domainId: DomainId - amount: bigint - config: OperatorConfig - signingKeyProofOfOwnership: Bytes -} - -/** - * Update permissioned action allowed by storage by Sudo. - */ -export interface DomainsCall_set_permissioned_action_allowed_by { - __kind: 'set_permissioned_action_allowed_by' - permissionedActionAllowedBy: PermissionedActionAllowedBy -} - -export interface DomainsCall_submit_bundle { - __kind: 'submit_bundle' - opaqueBundle: Bundle -} - -export interface DomainsCall_submit_fraud_proof { - __kind: 'submit_fraud_proof' - fraudProof: FraudProof -} - -/** - * Unlocks the first withdrawal given the unlocking period is complete. - * Even if rest of the withdrawals are out of unlocking period, nominator - * should call this extrinsic to unlock each withdrawal - */ -export interface DomainsCall_unlock_funds { - __kind: 'unlock_funds' - operatorId: bigint -} - -/** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ -export interface DomainsCall_unlock_nominator { - __kind: 'unlock_nominator' - operatorId: bigint -} - -/** - * Extrinsic to update domain's operator allow list. - * Note: - * - If the previous allowed list is set to specific operators and new allow list is set - * to `Anyone`, then domain will become permissioned to open for all operators. - * - If the previous allowed list is set to `Anyone` or specific operators and the new - * allow list is set to specific operators, then all the registered not allowed operators - * will continue to operate until they de-register themselves. - */ -export interface DomainsCall_update_domain_operator_allow_list { - __kind: 'update_domain_operator_allow_list' - domainId: DomainId - operatorAllowList: OperatorAllowList -} - -export interface DomainsCall_upgrade_domain_runtime { - __kind: 'upgrade_domain_runtime' - runtimeId: number - rawGenesisStorage: Bytes -} - -export interface DomainsCall_withdraw_stake { - __kind: 'withdraw_stake' - operatorId: bigint - shares: bigint -} - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export const BalancesCall: sts.Type = sts.closedEnum(() => { - return { - force_adjust_total_issuance: sts.enumStruct({ - direction: AdjustmentDirection, - delta: sts.bigint(), - }), - force_set_balance: sts.enumStruct({ - who: MultiAddress, - newFree: sts.bigint(), - }), - force_transfer: sts.enumStruct({ - source: MultiAddress, - dest: MultiAddress, - value: sts.bigint(), - }), - force_unreserve: sts.enumStruct({ - who: MultiAddress, - amount: sts.bigint(), - }), - transfer_all: sts.enumStruct({ - dest: MultiAddress, - keepAlive: sts.boolean(), - }), - transfer_allow_death: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - transfer_keep_alive: sts.enumStruct({ - dest: MultiAddress, - value: sts.bigint(), - }), - upgrade_accounts: sts.enumStruct({ - who: sts.array(() => AccountId32), - }), - } -}) - -/** - * Contains a variant per dispatchable extrinsic that this pallet has. - */ -export type BalancesCall = BalancesCall_force_adjust_total_issuance | BalancesCall_force_set_balance | BalancesCall_force_transfer | BalancesCall_force_unreserve | BalancesCall_transfer_all | BalancesCall_transfer_allow_death | BalancesCall_transfer_keep_alive | BalancesCall_upgrade_accounts - -/** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ -export interface BalancesCall_force_adjust_total_issuance { - __kind: 'force_adjust_total_issuance' - direction: AdjustmentDirection - delta: bigint -} - -/** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - */ -export interface BalancesCall_force_set_balance { - __kind: 'force_set_balance' - who: MultiAddress - newFree: bigint -} - -/** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - */ -export interface BalancesCall_force_transfer { - __kind: 'force_transfer' - source: MultiAddress - dest: MultiAddress - value: bigint -} - -/** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - */ -export interface BalancesCall_force_unreserve { - __kind: 'force_unreserve' - who: MultiAddress - amount: bigint -} - -/** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - */ -export interface BalancesCall_transfer_all { - __kind: 'transfer_all' - dest: MultiAddress - keepAlive: boolean -} - -/** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - */ -export interface BalancesCall_transfer_allow_death { - __kind: 'transfer_allow_death' - dest: MultiAddress - value: bigint -} - -/** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - */ -export interface BalancesCall_transfer_keep_alive { - __kind: 'transfer_keep_alive' - dest: MultiAddress - value: bigint -} - -/** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - */ -export interface BalancesCall_upgrade_accounts { - __kind: 'upgrade_accounts' - who: AccountId32[] -} - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export type Call = Call_Balances | Call_Domains | Call_Messenger | Call_Rewards | Call_RuntimeConfigs | Call_Subspace | Call_Sudo | Call_System | Call_Timestamp | Call_Transporter | Call_Utility | Call_Vesting - -export interface Call_Balances { - __kind: 'Balances' - value: BalancesCall -} - -export interface Call_Domains { - __kind: 'Domains' - value: DomainsCall -} - -export interface Call_Messenger { - __kind: 'Messenger' - value: MessengerCall -} - -export interface Call_Rewards { - __kind: 'Rewards' - value: RewardsCall -} - -export interface Call_RuntimeConfigs { - __kind: 'RuntimeConfigs' - value: RuntimeConfigsCall -} - -export interface Call_Subspace { - __kind: 'Subspace' - value: SubspaceCall -} - -export interface Call_Sudo { - __kind: 'Sudo' - value: SudoCall -} - -export interface Call_System { - __kind: 'System' - value: SystemCall -} - -export interface Call_Timestamp { - __kind: 'Timestamp' - value: TimestampCall -} - -export interface Call_Transporter { - __kind: 'Transporter' - value: TransporterCall -} - -export interface Call_Utility { - __kind: 'Utility' - value: UtilityCall -} - -export interface Call_Vesting { - __kind: 'Vesting' - value: VestingCall -} - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/consensus-squid/src/types/vesting/calls.ts b/indexers/consensus-squid/src/types/vesting/calls.ts deleted file mode 100644 index 91b5a501a..000000000 --- a/indexers/consensus-squid/src/types/vesting/calls.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const claim = { - name: 'Vesting.claim', - /** - * See [`Pallet::claim`]. - */ - v0: new CallType( - 'Vesting.claim', - sts.unit() - ), -} - -export const vestedTransfer = { - name: 'Vesting.vested_transfer', - /** - * See [`Pallet::vested_transfer`]. - */ - v0: new CallType( - 'Vesting.vested_transfer', - sts.struct({ - dest: v0.MultiAddress, - schedule: v0.VestingSchedule, - }) - ), -} - -export const updateVestingSchedules = { - name: 'Vesting.update_vesting_schedules', - /** - * See [`Pallet::update_vesting_schedules`]. - */ - v0: new CallType( - 'Vesting.update_vesting_schedules', - sts.struct({ - who: v0.MultiAddress, - vestingSchedules: sts.array(() => v0.VestingSchedule), - }) - ), -} - -export const claimFor = { - name: 'Vesting.claim_for', - /** - * See [`Pallet::claim_for`]. - */ - v0: new CallType( - 'Vesting.claim_for', - sts.struct({ - dest: v0.MultiAddress, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/vesting/constants.ts b/indexers/consensus-squid/src/types/vesting/constants.ts deleted file mode 100644 index 4c7cbb2b9..000000000 --- a/indexers/consensus-squid/src/types/vesting/constants.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minVestedTransfer = { - /** - * The minimum amount transferred to call `vested_transfer`. - */ - v0: new ConstantType( - 'Vesting.MinVestedTransfer', - sts.bigint() - ), -} diff --git a/indexers/consensus-squid/src/types/vesting/events.ts b/indexers/consensus-squid/src/types/vesting/events.ts deleted file mode 100644 index 02d40ad04..000000000 --- a/indexers/consensus-squid/src/types/vesting/events.ts +++ /dev/null @@ -1,44 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const vestingScheduleAdded = { - name: 'Vesting.VestingScheduleAdded', - /** - * Added new vesting schedule. - */ - v0: new EventType( - 'Vesting.VestingScheduleAdded', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - vestingSchedule: v0.VestingSchedule, - }) - ), -} - -export const claimed = { - name: 'Vesting.Claimed', - /** - * Claimed vesting. - */ - v0: new EventType( - 'Vesting.Claimed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const vestingSchedulesUpdated = { - name: 'Vesting.VestingSchedulesUpdated', - /** - * Updated vesting schedules. - */ - v0: new EventType( - 'Vesting.VestingSchedulesUpdated', - sts.struct({ - who: v0.AccountId32, - }) - ), -} diff --git a/indexers/consensus-squid/src/types/vesting/storage.ts b/indexers/consensus-squid/src/types/vesting/storage.ts deleted file mode 100644 index 847b2f926..000000000 --- a/indexers/consensus-squid/src/types/vesting/storage.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const vestingSchedules = { - /** - * Vesting schedules of an account. - * - * VestingSchedules: map AccountId => Vec - */ - v0: new StorageType('Vesting.VestingSchedules', 'Default', [v0.AccountId32], sts.array(() => v0.VestingSchedule)) as VestingSchedulesV0, -} - -/** - * Vesting schedules of an account. - * - * VestingSchedules: map AccountId => Vec - */ -export interface VestingSchedulesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.VestingSchedule[] - get(block: Block, key: v0.AccountId32): Promise<(v0.VestingSchedule[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.VestingSchedule[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.VestingSchedule[] | undefined)][]> -} diff --git a/indexers/leaderboard-squid/.gitignore b/indexers/leaderboard-squid/.gitignore index 263e67075..b7db6c18c 100644 --- a/indexers/leaderboard-squid/.gitignore +++ b/indexers/leaderboard-squid/.gitignore @@ -8,4 +8,7 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/leaderboard-squid/db/migrations/1724277861698-Data.js b/indexers/leaderboard-squid/db/migrations/1724277861698-Data.js deleted file mode 100644 index 0444a35ce..000000000 --- a/indexers/leaderboard-squid/db/migrations/1724277861698-Data.js +++ /dev/null @@ -1,105 +0,0 @@ -module.exports = class Data1724277861698 { - name = 'Data1724277861698' - - async up(db) { - await db.query(`CREATE TABLE "account_transfer_sender_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e552546f78849e8eab40a2abe00" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_7f58bc1e58c474d506a3226011" ON "account_transfer_sender_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_sender_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_f9289e86e0a038c9a7f0ffd31bb" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c0ebb1a829725be0740f452cdd" ON "account_transfer_sender_total_value" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_receiver_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8c4fe4f4df0c2fe09f4add91dc1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_b96fa4f9f854baf4964b94c569" ON "account_transfer_receiver_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transfer_receiver_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_74b1219748b0947e2c01869330f" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1b077103b1bc5a17af2f4a064f" ON "account_transfer_receiver_total_value" ("rank") `) - await db.query(`CREATE TABLE "account_remark_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_84b4f048b6b0cfe0a91928e3c56" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_935f40ea89724b633a624a746f" ON "account_remark_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_2d4d99f8fd71e09782e04ce6383" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d5e333e50391ebf70cf6bd8ea2" ON "account_extrinsic_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_success_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6347e36b6dab52598920f2bf6d5" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1fde147e099f5aaf89014b2637" ON "account_extrinsic_success_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_extrinsic_failed_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_ad0f35e57a01949e40173e09fc0" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_669715a47deb663bbb401be0e1" ON "account_extrinsic_failed_total_count" ("rank") `) - await db.query(`CREATE TABLE "account_transaction_fee_paid_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_575c98d771f13f9679578f5b9d7" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_e760a5a18d06dce57c6a7cd2d3" ON "account_transaction_fee_paid_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_918f8e2d8e59a98268ff9b90091" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4a9dea9ace21c771d6009945cc" ON "farmer_vote_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_d0d5a314e74587ba1d363abada8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_38d89f81ab4a9be6af12f20645" ON "farmer_vote_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_block_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e95044f1288e5ed17d5afbb8d9d" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_08887941b347373a2a7df8cf46" ON "farmer_block_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_block_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_9ec5ca1a42210d4b6b81b2c3767" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_88601e3f9c9d6232e3aa8dfeec" ON "farmer_block_total_value" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_and_block_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_2ddfe1f33054ae3e6f0bc1d169b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_04f9498f5fb7816da89ce6b74b" ON "farmer_vote_and_block_total_count" ("rank") `) - await db.query(`CREATE TABLE "farmer_vote_and_block_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_c5e84d1cbe6d35a2be27dce2687" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_2caffb1ea17ff11bce5324149c" ON "farmer_vote_and_block_total_value" ("rank") `) - await db.query(`CREATE TABLE "operator_total_rewards_collected" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_d508f86eb381e877ab636102aac" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_22eff26301c07eb9bdc693b68e" ON "operator_total_rewards_collected" ("rank") `) - await db.query(`CREATE TABLE "operator_total_tax_collected" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_ac699d330bc0ddf2c1abe2af16b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_e87316f3b214f8c2a5390cc290" ON "operator_total_tax_collected" ("rank") `) - await db.query(`CREATE TABLE "operator_bundle_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8da0332f9c5fe77654da1ac45aa" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_28690a9d38a0f3e8241e1b0654" ON "operator_bundle_total_count" ("rank") `) - await db.query(`CREATE TABLE "operator_deposits_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_23ecf13a9c3b7660aafd3482a6a" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1f136e1778fa9bf9862c82237d" ON "operator_deposits_total_count" ("rank") `) - await db.query(`CREATE TABLE "operator_deposits_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_1aafd1c19361ddaf43b519bb9a2" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3271ed16cd7ec517f880c2b773" ON "operator_deposits_total_value" ("rank") `) - await db.query(`CREATE TABLE "operator_withdrawals_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_bb81061cc6ab3d65e5c831a3657" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d2601198dd7c01836974664500" ON "operator_withdrawals_total_count" ("rank") `) - await db.query(`CREATE TABLE "nominator_deposits_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_4c569d7d27fe43e38f5588ba246" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ff57ac3aa1a0ef318b3a53ca0c" ON "nominator_deposits_total_count" ("rank") `) - await db.query(`CREATE TABLE "nominator_deposits_total_value" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" numeric NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_4a95edc83e860d25aaa76a03e68" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_0a7603f976cedf076553398356" ON "nominator_deposits_total_value" ("rank") `) - await db.query(`CREATE TABLE "nominator_withdrawals_total_count" ("id" character varying NOT NULL, "rank" integer NOT NULL, "value" integer NOT NULL, "last_contribution_at" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_e983c41d64d1945553ae30a805d" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3ceb44a26459c1c319442e02cb" ON "nominator_withdrawals_total_count" ("rank") `) - } - - async down(db) { - await db.query(`DROP TABLE "account_transfer_sender_total_count"`) - await db.query(`DROP INDEX "public"."IDX_7f58bc1e58c474d506a3226011"`) - await db.query(`DROP TABLE "account_transfer_sender_total_value"`) - await db.query(`DROP INDEX "public"."IDX_c0ebb1a829725be0740f452cdd"`) - await db.query(`DROP TABLE "account_transfer_receiver_total_count"`) - await db.query(`DROP INDEX "public"."IDX_b96fa4f9f854baf4964b94c569"`) - await db.query(`DROP TABLE "account_transfer_receiver_total_value"`) - await db.query(`DROP INDEX "public"."IDX_1b077103b1bc5a17af2f4a064f"`) - await db.query(`DROP TABLE "account_remark_count"`) - await db.query(`DROP INDEX "public"."IDX_935f40ea89724b633a624a746f"`) - await db.query(`DROP TABLE "account_extrinsic_total_count"`) - await db.query(`DROP INDEX "public"."IDX_d5e333e50391ebf70cf6bd8ea2"`) - await db.query(`DROP TABLE "account_extrinsic_success_total_count"`) - await db.query(`DROP INDEX "public"."IDX_1fde147e099f5aaf89014b2637"`) - await db.query(`DROP TABLE "account_extrinsic_failed_total_count"`) - await db.query(`DROP INDEX "public"."IDX_669715a47deb663bbb401be0e1"`) - await db.query(`DROP TABLE "account_transaction_fee_paid_total_value"`) - await db.query(`DROP INDEX "public"."IDX_e760a5a18d06dce57c6a7cd2d3"`) - await db.query(`DROP TABLE "farmer_vote_total_count"`) - await db.query(`DROP INDEX "public"."IDX_4a9dea9ace21c771d6009945cc"`) - await db.query(`DROP TABLE "farmer_vote_total_value"`) - await db.query(`DROP INDEX "public"."IDX_38d89f81ab4a9be6af12f20645"`) - await db.query(`DROP TABLE "farmer_block_total_count"`) - await db.query(`DROP INDEX "public"."IDX_08887941b347373a2a7df8cf46"`) - await db.query(`DROP TABLE "farmer_block_total_value"`) - await db.query(`DROP INDEX "public"."IDX_88601e3f9c9d6232e3aa8dfeec"`) - await db.query(`DROP TABLE "farmer_vote_and_block_total_count"`) - await db.query(`DROP INDEX "public"."IDX_04f9498f5fb7816da89ce6b74b"`) - await db.query(`DROP TABLE "farmer_vote_and_block_total_value"`) - await db.query(`DROP INDEX "public"."IDX_2caffb1ea17ff11bce5324149c"`) - await db.query(`DROP TABLE "operator_total_rewards_collected"`) - await db.query(`DROP INDEX "public"."IDX_22eff26301c07eb9bdc693b68e"`) - await db.query(`DROP TABLE "operator_total_tax_collected"`) - await db.query(`DROP INDEX "public"."IDX_e87316f3b214f8c2a5390cc290"`) - await db.query(`DROP TABLE "operator_bundle_total_count"`) - await db.query(`DROP INDEX "public"."IDX_28690a9d38a0f3e8241e1b0654"`) - await db.query(`DROP TABLE "operator_deposits_total_count"`) - await db.query(`DROP INDEX "public"."IDX_1f136e1778fa9bf9862c82237d"`) - await db.query(`DROP TABLE "operator_deposits_total_value"`) - await db.query(`DROP INDEX "public"."IDX_3271ed16cd7ec517f880c2b773"`) - await db.query(`DROP TABLE "operator_withdrawals_total_count"`) - await db.query(`DROP INDEX "public"."IDX_d2601198dd7c01836974664500"`) - await db.query(`DROP TABLE "nominator_deposits_total_count"`) - await db.query(`DROP INDEX "public"."IDX_ff57ac3aa1a0ef318b3a53ca0c"`) - await db.query(`DROP TABLE "nominator_deposits_total_value"`) - await db.query(`DROP INDEX "public"."IDX_0a7603f976cedf076553398356"`) - await db.query(`DROP TABLE "nominator_withdrawals_total_count"`) - await db.query(`DROP INDEX "public"."IDX_3ceb44a26459c1c319442e02cb"`) - } -} diff --git a/indexers/leaderboard-squid/src/model/index.ts b/indexers/leaderboard-squid/src/model/index.ts deleted file mode 100644 index 99735f641..000000000 --- a/indexers/leaderboard-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './generated' diff --git a/indexers/leaderboard-squid/src/types/balances/calls.ts b/indexers/leaderboard-squid/src/types/balances/calls.ts deleted file mode 100644 index 03fbec1ea..000000000 --- a/indexers/leaderboard-squid/src/types/balances/calls.ts +++ /dev/null @@ -1,119 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v5 from '../v5' - -export const transferAllowDeath = { - name: 'Balances.transfer_allow_death', - /** - * See [`Pallet::transfer_allow_death`]. - */ - v0: new CallType( - 'Balances.transfer_allow_death', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const forceTransfer = { - name: 'Balances.force_transfer', - /** - * See [`Pallet::force_transfer`]. - */ - v0: new CallType( - 'Balances.force_transfer', - sts.struct({ - source: v0.MultiAddress, - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferKeepAlive = { - name: 'Balances.transfer_keep_alive', - /** - * See [`Pallet::transfer_keep_alive`]. - */ - v0: new CallType( - 'Balances.transfer_keep_alive', - sts.struct({ - dest: v0.MultiAddress, - value: sts.bigint(), - }) - ), -} - -export const transferAll = { - name: 'Balances.transfer_all', - /** - * See [`Pallet::transfer_all`]. - */ - v0: new CallType( - 'Balances.transfer_all', - sts.struct({ - dest: v0.MultiAddress, - keepAlive: sts.boolean(), - }) - ), -} - -export const forceUnreserve = { - name: 'Balances.force_unreserve', - /** - * See [`Pallet::force_unreserve`]. - */ - v0: new CallType( - 'Balances.force_unreserve', - sts.struct({ - who: v0.MultiAddress, - amount: sts.bigint(), - }) - ), -} - -export const upgradeAccounts = { - name: 'Balances.upgrade_accounts', - /** - * See [`Pallet::upgrade_accounts`]. - */ - v0: new CallType( - 'Balances.upgrade_accounts', - sts.struct({ - who: sts.array(() => v0.AccountId32), - }) - ), -} - -export const forceSetBalance = { - name: 'Balances.force_set_balance', - /** - * See [`Pallet::force_set_balance`]. - */ - v0: new CallType( - 'Balances.force_set_balance', - sts.struct({ - who: v0.MultiAddress, - newFree: sts.bigint(), - }) - ), -} - -export const forceAdjustTotalIssuance = { - name: 'Balances.force_adjust_total_issuance', - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - */ - v5: new CallType( - 'Balances.force_adjust_total_issuance', - sts.struct({ - direction: v5.AdjustmentDirection, - delta: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/constants.ts b/indexers/leaderboard-squid/src/types/balances/constants.ts deleted file mode 100644 index 5cab2c7e3..000000000 --- a/indexers/leaderboard-squid/src/types/balances/constants.ts +++ /dev/null @@ -1,59 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const existentialDeposit = { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - */ - v0: new ConstantType( - 'Balances.ExistentialDeposit', - sts.bigint() - ), -} - -export const maxLocks = { - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - */ - v0: new ConstantType( - 'Balances.MaxLocks', - sts.number() - ), -} - -export const maxReserves = { - /** - * The maximum number of named reserves that can exist on an account. - */ - v0: new ConstantType( - 'Balances.MaxReserves', - sts.number() - ), -} - -export const maxHolds = { - /** - * The maximum number of holds that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxHolds', - sts.number() - ), -} - -export const maxFreezes = { - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - */ - v0: new ConstantType( - 'Balances.MaxFreezes', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/events.ts b/indexers/leaderboard-squid/src/types/balances/events.ts deleted file mode 100644 index fda7f6e59..000000000 --- a/indexers/leaderboard-squid/src/types/balances/events.ts +++ /dev/null @@ -1,312 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const endowed = { - name: 'Balances.Endowed', - /** - * An account was created with some free balance. - */ - v0: new EventType( - 'Balances.Endowed', - sts.struct({ - account: v0.AccountId32, - freeBalance: sts.bigint(), - }) - ), -} - -export const dustLost = { - name: 'Balances.DustLost', - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ - v0: new EventType( - 'Balances.DustLost', - sts.struct({ - account: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const transfer = { - name: 'Balances.Transfer', - /** - * Transfer succeeded. - */ - v0: new EventType( - 'Balances.Transfer', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const balanceSet = { - name: 'Balances.BalanceSet', - /** - * A balance was set by root. - */ - v0: new EventType( - 'Balances.BalanceSet', - sts.struct({ - who: v0.AccountId32, - free: sts.bigint(), - }) - ), -} - -export const reserved = { - name: 'Balances.Reserved', - /** - * Some balance was reserved (moved from free to reserved). - */ - v0: new EventType( - 'Balances.Reserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unreserved = { - name: 'Balances.Unreserved', - /** - * Some balance was unreserved (moved from reserved to free). - */ - v0: new EventType( - 'Balances.Unreserved', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const reserveRepatriated = { - name: 'Balances.ReserveRepatriated', - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ - v0: new EventType( - 'Balances.ReserveRepatriated', - sts.struct({ - from: v0.AccountId32, - to: v0.AccountId32, - amount: sts.bigint(), - destinationStatus: v0.BalanceStatus, - }) - ), -} - -export const deposit = { - name: 'Balances.Deposit', - /** - * Some amount was deposited (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Deposit', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const withdraw = { - name: 'Balances.Withdraw', - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ - v0: new EventType( - 'Balances.Withdraw', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const slashed = { - name: 'Balances.Slashed', - /** - * Some amount was removed from the account (e.g. for misbehavior). - */ - v0: new EventType( - 'Balances.Slashed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const minted = { - name: 'Balances.Minted', - /** - * Some amount was minted into an account. - */ - v0: new EventType( - 'Balances.Minted', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const burned = { - name: 'Balances.Burned', - /** - * Some amount was burned from an account. - */ - v0: new EventType( - 'Balances.Burned', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const suspended = { - name: 'Balances.Suspended', - /** - * Some amount was suspended from an account (it can be restored later). - */ - v0: new EventType( - 'Balances.Suspended', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const restored = { - name: 'Balances.Restored', - /** - * Some amount was restored into an account. - */ - v0: new EventType( - 'Balances.Restored', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const upgraded = { - name: 'Balances.Upgraded', - /** - * An account was upgraded. - */ - v0: new EventType( - 'Balances.Upgraded', - sts.struct({ - who: v0.AccountId32, - }) - ), -} - -export const issued = { - name: 'Balances.Issued', - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ - v0: new EventType( - 'Balances.Issued', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const rescinded = { - name: 'Balances.Rescinded', - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ - v0: new EventType( - 'Balances.Rescinded', - sts.struct({ - amount: sts.bigint(), - }) - ), -} - -export const locked = { - name: 'Balances.Locked', - /** - * Some balance was locked. - */ - v0: new EventType( - 'Balances.Locked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const unlocked = { - name: 'Balances.Unlocked', - /** - * Some balance was unlocked. - */ - v0: new EventType( - 'Balances.Unlocked', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const frozen = { - name: 'Balances.Frozen', - /** - * Some balance was frozen. - */ - v0: new EventType( - 'Balances.Frozen', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const thawed = { - name: 'Balances.Thawed', - /** - * Some balance was thawed. - */ - v0: new EventType( - 'Balances.Thawed', - sts.struct({ - who: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const totalIssuanceForced = { - name: 'Balances.TotalIssuanceForced', - /** - * The `TotalIssuance` was forcefully changed. - */ - v5: new EventType( - 'Balances.TotalIssuanceForced', - sts.struct({ - old: sts.bigint(), - new: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/balances/storage.ts b/indexers/leaderboard-squid/src/types/balances/storage.ts deleted file mode 100644 index 5f4a19212..000000000 --- a/indexers/leaderboard-squid/src/types/balances/storage.ts +++ /dev/null @@ -1,253 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' - -export const totalIssuance = { - /** - * The total units issued in the system. - */ - v0: new StorageType('Balances.TotalIssuance', 'Default', [], sts.bigint()) as TotalIssuanceV0, -} - -/** - * The total units issued in the system. - */ -export interface TotalIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const inactiveIssuance = { - /** - * The total units of outstanding deactivated balance in the system. - */ - v0: new StorageType('Balances.InactiveIssuance', 'Default', [], sts.bigint()) as InactiveIssuanceV0, -} - -/** - * The total units of outstanding deactivated balance in the system. - */ -export interface InactiveIssuanceV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const account = { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ - v0: new StorageType('Balances.Account', 'Default', [v0.AccountId32], v0.AccountData) as AccountV0, -} - -/** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountData - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountData | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountData | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountData | undefined)][]> -} - -export const locks = { - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ - v0: new StorageType('Balances.Locks', 'Default', [v0.AccountId32], sts.array(() => v0.BalanceLock)) as LocksV0, -} - -/** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - */ -export interface LocksV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BalanceLock[] - get(block: Block, key: v0.AccountId32): Promise<(v0.BalanceLock[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.BalanceLock[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.BalanceLock[] | undefined)][]> -} - -export const reserves = { - /** - * Named reserves on some account balances. - */ - v0: new StorageType('Balances.Reserves', 'Default', [v0.AccountId32], sts.array(() => v0.ReserveData)) as ReservesV0, -} - -/** - * Named reserves on some account balances. - */ -export interface ReservesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.ReserveData[] - get(block: Block, key: v0.AccountId32): Promise<(v0.ReserveData[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.ReserveData[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.ReserveData[] | undefined)][]> -} - -export const holds = { - /** - * Holds on account balances. - */ - v0: new StorageType('Balances.Holds', 'Default', [v0.AccountId32], sts.array(() => v0.IdAmount)) as HoldsV0, - /** - * Holds on account balances. - */ - v1: new StorageType('Balances.Holds', 'Default', [v1.AccountId32], sts.array(() => v1.IdAmount)) as HoldsV1, - /** - * Holds on account balances. - */ - v3: new StorageType('Balances.Holds', 'Default', [v3.AccountId32], sts.array(() => v3.IdAmount)) as HoldsV3, -} - -/** - * Holds on account balances. - */ -export interface HoldsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.IdAmount[] - get(block: Block, key: v0.AccountId32): Promise<(v0.IdAmount[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.IdAmount[] - get(block: Block, key: v1.AccountId32): Promise<(v1.IdAmount[] | undefined)> - getMany(block: Block, keys: v1.AccountId32[]): Promise<(v1.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v1.AccountId32): Promise<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.AccountId32): AsyncIterable<[k: v1.AccountId32, v: (v1.IdAmount[] | undefined)][]> -} - -/** - * Holds on account balances. - */ -export interface HoldsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.IdAmount[] - get(block: Block, key: v3.AccountId32): Promise<(v3.IdAmount[] | undefined)> - getMany(block: Block, keys: v3.AccountId32[]): Promise<(v3.IdAmount[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v3.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairs(block: Block, key: v3.AccountId32): Promise<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v3.AccountId32): AsyncIterable<[k: v3.AccountId32, v: (v3.IdAmount[] | undefined)][]> -} - -export const freezes = { - /** - * Freeze locks on account balances. - */ - v0: new StorageType('Balances.Freezes', 'Default', [v0.AccountId32], sts.array(() => v0.Type_152)) as FreezesV0, -} - -/** - * Freeze locks on account balances. - */ -export interface FreezesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Type_152[] - get(block: Block, key: v0.AccountId32): Promise<(v0.Type_152[] | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.Type_152[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.Type_152[] | undefined)][]> -} diff --git a/indexers/leaderboard-squid/src/types/calls.ts b/indexers/leaderboard-squid/src/types/calls.ts deleted file mode 100644 index 92374c8bf..000000000 --- a/indexers/leaderboard-squid/src/types/calls.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * as system from './system/calls' -export * as subspace from './subspace/calls' -export * as balances from './balances/calls' -export * as domains from './domains/calls' -export * as rewards from './rewards/calls' diff --git a/indexers/leaderboard-squid/src/types/constants.ts b/indexers/leaderboard-squid/src/types/constants.ts deleted file mode 100644 index bac116dd0..000000000 --- a/indexers/leaderboard-squid/src/types/constants.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/constants' -export * as subspace from './subspace/constants' -export * as rewards from './rewards/constants' -export * as balances from './balances/constants' -export * as transactionFees from './transaction-fees/constants' -export * as transactionPayment from './transaction-payment/constants' -export * as domains from './domains/constants' diff --git a/indexers/leaderboard-squid/src/types/domains/calls.ts b/indexers/leaderboard-squid/src/types/domains/calls.ts deleted file mode 100644 index 3ecf1398b..000000000 --- a/indexers/leaderboard-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,278 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/constants.ts b/indexers/leaderboard-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/leaderboard-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/events.ts b/indexers/leaderboard-squid/src/types/domains/events.ts deleted file mode 100644 index d6551e7d0..000000000 --- a/indexers/leaderboard-squid/src/types/domains/events.ts +++ /dev/null @@ -1,250 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/domains/storage.ts b/indexers/leaderboard-squid/src/types/domains/storage.ts deleted file mode 100644 index 495ae0e03..000000000 --- a/indexers/leaderboard-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/events.ts b/indexers/leaderboard-squid/src/types/events.ts deleted file mode 100644 index 9ec91fd9b..000000000 --- a/indexers/leaderboard-squid/src/types/events.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/events' -export * as subspace from './subspace/events' -export * as rewards from './rewards/events' -export * as balances from './balances/events' -export * as transactionFees from './transaction-fees/events' -export * as transactionPayment from './transaction-payment/events' -export * as domains from './domains/events' diff --git a/indexers/leaderboard-squid/src/types/index.ts b/indexers/leaderboard-squid/src/types/index.ts deleted file mode 100644 index a9093352d..000000000 --- a/indexers/leaderboard-squid/src/types/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/leaderboard-squid/src/types/rewards/calls.ts b/indexers/leaderboard-squid/src/types/rewards/calls.ts deleted file mode 100644 index b8486afff..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/calls.ts +++ /dev/null @@ -1,16 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const updateIssuanceParams = { - name: 'Rewards.update_issuance_params', - /** - * See [`Pallet::update_issuance_params`]. - */ - v3: new CallType( - 'Rewards.update_issuance_params', - sts.struct({ - proposerSubsidyPoints: sts.array(() => v3.RewardPoint), - voterSubsidyPoints: sts.array(() => v3.RewardPoint), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/constants.ts b/indexers/leaderboard-squid/src/types/rewards/constants.ts deleted file mode 100644 index e1004ecc1..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/constants.ts +++ /dev/null @@ -1,61 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const blockReward = { - /** - * Fixed reward for block producer. - */ - v0: new ConstantType( - 'Rewards.BlockReward', - sts.bigint() - ), -} - -export const voteReward = { - /** - * Fixed reward for voter. - */ - v0: new ConstantType( - 'Rewards.VoteReward', - sts.bigint() - ), -} - -export const avgBlockspaceUsageNumBlocks = { - /** - * Number of blocks over which to compute average blockspace usage - */ - v3: new ConstantType( - 'Rewards.AvgBlockspaceUsageNumBlocks', - sts.number() - ), -} - -export const transactionByteFee = { - /** - * Cost of one byte of blockspace - */ - v3: new ConstantType( - 'Rewards.TransactionByteFee', - sts.bigint() - ), -} - -export const maxRewardPoints = { - /** - * Max number of reward points - */ - v3: new ConstantType( - 'Rewards.MaxRewardPoints', - sts.number() - ), -} - -export const proposerTaxOnVotes = { - /** - * Tax of the proposer on vote rewards - */ - v3: new ConstantType( - 'Rewards.ProposerTaxOnVotes', - sts.tuple(() => [sts.number(), sts.number()]) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/events.ts b/indexers/leaderboard-squid/src/types/rewards/events.ts deleted file mode 100644 index 5b01a1694..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/events.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockReward = { - name: 'Rewards.BlockReward', - /** - * Issued reward for the block author. - */ - v0: new EventType( - 'Rewards.BlockReward', - sts.struct({ - blockAuthor: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} - -export const voteReward = { - name: 'Rewards.VoteReward', - /** - * Issued reward for the voter. - */ - v0: new EventType( - 'Rewards.VoteReward', - sts.struct({ - voter: v0.AccountId32, - reward: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/rewards/storage.ts b/indexers/leaderboard-squid/src/types/rewards/storage.ts deleted file mode 100644 index 971093421..000000000 --- a/indexers/leaderboard-squid/src/types/rewards/storage.ts +++ /dev/null @@ -1,82 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v3 from '../v3' - -export const avgBlockspaceUsage = { - /** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ - v3: new StorageType('Rewards.AvgBlockspaceUsage', 'Default', [], sts.number()) as AvgBlockspaceUsageV3, -} - -/** - * Utilization of blockspace (in bytes) by the normal extrinsics used to adjust issuance - */ -export interface AvgBlockspaceUsageV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const rewardsEnabled = { - /** - * Whether rewards are enabled - */ - v3: new StorageType('Rewards.RewardsEnabled', 'Default', [], sts.boolean()) as RewardsEnabledV3, -} - -/** - * Whether rewards are enabled - */ -export interface RewardsEnabledV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const remainingIssuance = { - /** - * Tokens left to issue to farmers at any given time - */ - v3: new StorageType('Rewards.RemainingIssuance', 'Default', [], sts.bigint()) as RemainingIssuanceV3, -} - -/** - * Tokens left to issue to farmers at any given time - */ -export interface RemainingIssuanceV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const proposerSubsidyPoints = { - /** - * Block proposer subsidy parameters - */ - v3: new StorageType('Rewards.ProposerSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as ProposerSubsidyPointsV3, -} - -/** - * Block proposer subsidy parameters - */ -export interface ProposerSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} - -export const voterSubsidyPoints = { - /** - * Voter subsidy parameters - */ - v3: new StorageType('Rewards.VoterSubsidyPoints', 'Default', [], sts.array(() => v3.RewardPoint)) as VoterSubsidyPointsV3, -} - -/** - * Voter subsidy parameters - */ -export interface VoterSubsidyPointsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v3.RewardPoint[] - get(block: Block): Promise<(v3.RewardPoint[] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/storage.ts b/indexers/leaderboard-squid/src/types/storage.ts deleted file mode 100644 index f9f60a12b..000000000 --- a/indexers/leaderboard-squid/src/types/storage.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * as system from './system/storage' -export * as subspace from './subspace/storage' -export * as balances from './balances/storage' -export * as transactionFees from './transaction-fees/storage' -export * as transactionPayment from './transaction-payment/storage' -export * as domains from './domains/storage' -export * as rewards from './rewards/storage' diff --git a/indexers/leaderboard-squid/src/types/subspace/calls.ts b/indexers/leaderboard-squid/src/types/subspace/calls.ts deleted file mode 100644 index add70afae..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/calls.ts +++ /dev/null @@ -1,79 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const reportEquivocation = { - name: 'Subspace.report_equivocation', - /** - * See [`Pallet::report_equivocation`]. - */ - v0: new CallType( - 'Subspace.report_equivocation', - sts.struct({ - equivocationProof: v0.EquivocationProof, - }) - ), -} - -export const storeSegmentHeaders = { - name: 'Subspace.store_segment_headers', - /** - * See [`Pallet::store_segment_headers`]. - */ - v0: new CallType( - 'Subspace.store_segment_headers', - sts.struct({ - segmentHeaders: sts.array(() => v0.SegmentHeader), - }) - ), -} - -export const enableSolutionRangeAdjustment = { - name: 'Subspace.enable_solution_range_adjustment', - /** - * See [`Pallet::enable_solution_range_adjustment`]. - */ - v0: new CallType( - 'Subspace.enable_solution_range_adjustment', - sts.struct({ - solutionRangeOverride: sts.option(() => sts.bigint()), - votingSolutionRangeOverride: sts.option(() => sts.bigint()), - }) - ), -} - -export const vote = { - name: 'Subspace.vote', - /** - * See [`Pallet::vote`]. - */ - v0: new CallType( - 'Subspace.vote', - sts.struct({ - signedVote: v0.SignedVote, - }) - ), -} - -export const enableRewardsAt = { - name: 'Subspace.enable_rewards_at', - /** - * See [`Pallet::enable_rewards_at`]. - */ - v0: new CallType( - 'Subspace.enable_rewards_at', - sts.struct({ - enableRewardsAt: v0.EnableRewardsAt, - }) - ), -} - -export const enableAuthoringByAnyone = { - name: 'Subspace.enable_authoring_by_anyone', - /** - * See [`Pallet::enable_authoring_by_anyone`]. - */ - v0: new CallType( - 'Subspace.enable_authoring_by_anyone', - sts.unit() - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/constants.ts b/indexers/leaderboard-squid/src/types/subspace/constants.ts deleted file mode 100644 index 555317b21..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/constants.ts +++ /dev/null @@ -1,154 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockAuthoringDelay = { - /** - * Number of slots between slot arrival and when corresponding block can be produced. - * - * Practically this means future proof of time proof needs to be revealed this many slots - * ahead before block can be authored even though solution is available before that. - */ - v0: new ConstantType( - 'Subspace.BlockAuthoringDelay', - v0.Slot - ), -} - -export const potEntropyInjectionInterval = { - /** - * Interval, in blocks, between blockchain entropy injection into proof of time chain. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionInterval', - sts.number() - ), -} - -export const potEntropyInjectionLookbackDepth = { - /** - * Interval, in entropy injection intervals, where to take entropy for injection from. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionLookbackDepth', - sts.number() - ), -} - -export const potEntropyInjectionDelay = { - /** - * Delay after block, in slots, when entropy injection takes effect. - */ - v0: new ConstantType( - 'Subspace.PotEntropyInjectionDelay', - v0.Slot - ), -} - -export const eraDuration = { - /** - * The amount of time, in blocks, that each era should last. - * NOTE: Currently it is not possible to change the era duration after - * the chain has started. Attempting to do so will brick block production. - */ - v0: new ConstantType( - 'Subspace.EraDuration', - sts.number() - ), -} - -export const initialSolutionRange = { - /** - * Initial solution range used for challenges during the very first era. - */ - v0: new ConstantType( - 'Subspace.InitialSolutionRange', - sts.bigint() - ), -} - -export const slotProbability = { - /** - * How often in slots slots (on average, not counting collisions) will have a block. - * - * Expressed as a rational where the first member of the tuple is the - * numerator and the second is the denominator. The rational should - * represent a value between 0 and 1. - */ - v0: new ConstantType( - 'Subspace.SlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const confirmationDepthK = { - /** - * Depth `K` after which a block enters the recorded history (a global constant, as opposed - * to the client-dependent transaction confirmation depth `k`). - */ - v0: new ConstantType( - 'Subspace.ConfirmationDepthK', - sts.number() - ), -} - -export const recentSegments = { - /** - * Number of latest archived segments that are considered "recent history". - */ - v0: new ConstantType( - 'Subspace.RecentSegments', - v0.HistorySize - ), -} - -export const recentHistoryFraction = { - /** - * Fraction of pieces from the "recent history" (`recent_segments`) in each sector. - */ - v0: new ConstantType( - 'Subspace.RecentHistoryFraction', - sts.tuple(() => [v0.HistorySize, v0.HistorySize]) - ), -} - -export const minSectorLifetime = { - /** - * Minimum lifetime of a plotted sector, measured in archived segment. - */ - v0: new ConstantType( - 'Subspace.MinSectorLifetime', - v0.HistorySize - ), -} - -export const expectedVotesPerBlock = { - /** - * Number of votes expected per block. - * - * This impacts solution range for votes in consensus. - */ - v0: new ConstantType( - 'Subspace.ExpectedVotesPerBlock', - sts.number() - ), -} - -export const maxPiecesInSector = { - /** - * How many pieces one sector is supposed to contain (max) - */ - v0: new ConstantType( - 'Subspace.MaxPiecesInSector', - sts.number() - ), -} - -export const blockSlotCount = { - /** - * Maximum number of block number to block slot mappings to keep (oldest pruned first). - */ - v3: new ConstantType( - 'Subspace.BlockSlotCount', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/events.ts b/indexers/leaderboard-squid/src/types/subspace/events.ts deleted file mode 100644 index 65427a471..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/events.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const segmentHeaderStored = { - name: 'Subspace.SegmentHeaderStored', - /** - * Segment header was stored in blockchain history. - */ - v0: new EventType( - 'Subspace.SegmentHeaderStored', - sts.struct({ - segmentHeader: v0.SegmentHeader, - }) - ), -} - -export const farmerVote = { - name: 'Subspace.FarmerVote', - /** - * Farmer vote. - */ - v0: new EventType( - 'Subspace.FarmerVote', - sts.struct({ - publicKey: v0.Public, - rewardAddress: v0.AccountId32, - height: sts.number(), - parentHash: v0.H256, - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/subspace/storage.ts b/indexers/leaderboard-squid/src/types/subspace/storage.ts deleted file mode 100644 index 8c1220cc5..000000000 --- a/indexers/leaderboard-squid/src/types/subspace/storage.ts +++ /dev/null @@ -1,390 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v3 from '../v3' - -export const genesisSlot = { - /** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ - v0: new StorageType('Subspace.GenesisSlot', 'Default', [], v0.Slot) as GenesisSlotV0, -} - -/** - * The slot at which the first block was created. This is 0 until the first block of the chain. - */ -export interface GenesisSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const currentSlot = { - /** - * Current slot number. - */ - v0: new StorageType('Subspace.CurrentSlot', 'Default', [], v0.Slot) as CurrentSlotV0, -} - -/** - * Current slot number. - */ -export interface CurrentSlotV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Slot - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const potSlotIterations = { - /** - * Number of iterations for proof of time per slot - */ - v0: new StorageType('Subspace.PotSlotIterations', 'Optional', [], v0.NonZeroU32) as PotSlotIterationsV0, -} - -/** - * Number of iterations for proof of time per slot - */ -export interface PotSlotIterationsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.NonZeroU32 | undefined)> -} - -export const solutionRanges = { - /** - * Solution ranges used for challenges. - */ - v0: new StorageType('Subspace.SolutionRanges', 'Default', [], v0.SolutionRanges) as SolutionRangesV0, -} - -/** - * Solution ranges used for challenges. - */ -export interface SolutionRangesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.SolutionRanges - get(block: Block): Promise<(v0.SolutionRanges | undefined)> -} - -export const shouldAdjustSolutionRange = { - /** - * Storage to check if the solution range is to be adjusted for next era - */ - v0: new StorageType('Subspace.ShouldAdjustSolutionRange', 'Default', [], sts.boolean()) as ShouldAdjustSolutionRangeV0, -} - -/** - * Storage to check if the solution range is to be adjusted for next era - */ -export interface ShouldAdjustSolutionRangeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const nextSolutionRangeOverride = { - /** - * Override solution range during next update - */ - v0: new StorageType('Subspace.NextSolutionRangeOverride', 'Optional', [], v0.SolutionRangeOverride) as NextSolutionRangeOverrideV0, -} - -/** - * Override solution range during next update - */ -export interface NextSolutionRangeOverrideV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.SolutionRangeOverride | undefined)> -} - -export const eraStartSlot = { - /** - * Slot at which current era started. - */ - v0: new StorageType('Subspace.EraStartSlot', 'Optional', [], v0.Slot) as EraStartSlotV0, -} - -/** - * Slot at which current era started. - */ -export interface EraStartSlotV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Slot | undefined)> -} - -export const blockList = { - /** - * A set of blocked farmers keyed by their public key. - */ - v0: new StorageType('Subspace.BlockList', 'Optional', [v0.Public], sts.unit()) as BlockListV0, -} - -/** - * A set of blocked farmers keyed by their public key. - */ -export interface BlockListV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.Public): Promise<(null | undefined)> - getMany(block: Block, keys: v0.Public[]): Promise<(null | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.Public): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable - getPairs(block: Block): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairs(block: Block, key: v0.Public): Promise<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.Public): AsyncIterable<[k: v0.Public, v: (null | undefined)][]> -} - -export const segmentCommitment = { - /** - * Mapping from segment index to corresponding segment commitment of contained records. - */ - v0: new StorageType('Subspace.SegmentCommitment', 'Optional', [v0.SegmentIndex], v0.SegmentCommitment) as SegmentCommitmentV0, -} - -/** - * Mapping from segment index to corresponding segment commitment of contained records. - */ -export interface SegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.SegmentIndex): Promise<(v0.SegmentCommitment | undefined)> - getMany(block: Block, keys: v0.SegmentIndex[]): Promise<(v0.SegmentCommitment | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.SegmentIndex): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable - getPairs(block: Block): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairs(block: Block, key: v0.SegmentIndex): Promise<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.SegmentIndex): AsyncIterable<[k: v0.SegmentIndex, v: (v0.SegmentCommitment | undefined)][]> -} - -export const counterForSegmentCommitment = { - /** - * Counter for the related counted storage map - */ - v0: new StorageType('Subspace.CounterForSegmentCommitment', 'Default', [], sts.number()) as CounterForSegmentCommitmentV0, -} - -/** - * Counter for the related counted storage map - */ -export interface CounterForSegmentCommitmentV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const didProcessSegmentHeaders = { - /** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ - v0: new StorageType('Subspace.DidProcessSegmentHeaders', 'Default', [], sts.boolean()) as DidProcessSegmentHeadersV0, -} - -/** - * Whether the segment headers inherent has been processed in this block (temporary value). - * - * This value is updated to `true` when processing `store_segment_headers` by a node. - * It is then cleared at the end of each block execution in the `on_finalize` hook. - */ -export interface DidProcessSegmentHeadersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const parentVoteVerificationData = { - /** - * Storage of previous vote verification data, updated on each block during finalization. - */ - v0: new StorageType('Subspace.ParentVoteVerificationData', 'Optional', [], v0.VoteVerificationData) as ParentVoteVerificationDataV0, -} - -/** - * Storage of previous vote verification data, updated on each block during finalization. - */ -export interface ParentVoteVerificationDataV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.VoteVerificationData | undefined)> -} - -export const parentBlockAuthorInfo = { - /** - * Parent block author information. - */ - v0: new StorageType('Subspace.ParentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot])) as ParentBlockAuthorInfoV0, -} - -/** - * Parent block author information. - */ -export interface ParentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot] | undefined)> -} - -export const enableRewards = { - /** - * Enable rewards since specified block number. - */ - v0: new StorageType('Subspace.EnableRewards', 'Optional', [], sts.number()) as EnableRewardsV0, -} - -/** - * Enable rewards since specified block number. - */ -export interface EnableRewardsV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const enableRewardsBelowSolutionRange = { - /** - * Enable rewards when solution range is below this threshold. - */ - v0: new StorageType('Subspace.EnableRewardsBelowSolutionRange', 'Optional', [], sts.bigint()) as EnableRewardsBelowSolutionRangeV0, -} - -/** - * Enable rewards when solution range is below this threshold. - */ -export interface EnableRewardsBelowSolutionRangeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(bigint | undefined)> -} - -export const currentBlockAuthorInfo = { - /** - * Temporary value (cleared at block finalization) with block author information. - */ - v0: new StorageType('Subspace.CurrentBlockAuthorInfo', 'Optional', [], sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32])) as CurrentBlockAuthorInfoV0, -} - -/** - * Temporary value (cleared at block finalization) with block author information. - */ -export interface CurrentBlockAuthorInfoV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot, v0.AccountId32] | undefined)> -} - -export const parentBlockVoters = { - /** - * Voters in the parent block (set at the end of the block with current values). - */ - v0: new StorageType('Subspace.ParentBlockVoters', 'Default', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as ParentBlockVotersV0, -} - -/** - * Voters in the parent block (set at the end of the block with current values). - */ -export interface ParentBlockVotersV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const currentBlockVoters = { - /** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ - v0: new StorageType('Subspace.CurrentBlockVoters', 'Optional', [], sts.array(() => sts.tuple(() => [sts.tuple(() => [v0.Public, sts.number(), v0.PieceOffset, v0.Scalar, v0.Slot]), sts.tuple(() => [v0.AccountId32, v0.Signature])]))) as CurrentBlockVotersV0, -} - -/** - * Temporary value (cleared at block finalization) with voters in the current block thus far. - */ -export interface CurrentBlockVotersV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<([[v0.Public, number, v0.PieceOffset, v0.Scalar, v0.Slot], [v0.AccountId32, v0.Signature]][] | undefined)> -} - -export const potEntropy = { - /** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ - v0: new StorageType('Subspace.PotEntropy', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v0.PotEntropyValue]))) as PotEntropyV0, -} - -/** - * Entropy that needs to be injected into proof of time chain at specific slot associated with - * block number it came from. - */ -export interface PotEntropyV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v0.PotEntropyValue][] - get(block: Block): Promise<([number, v0.PotEntropyValue][] | undefined)> -} - -export const blockRandomness = { - /** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ - v0: new StorageType('Subspace.BlockRandomness', 'Optional', [], v0.Randomness) as BlockRandomnessV0, -} - -/** - * The current block randomness, updated at block initialization. When the proof of time feature - * is enabled it derived from PoT otherwise PoR. - */ -export interface BlockRandomnessV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Randomness | undefined)> -} - -export const allowAuthoringByAnyone = { - /** - * Allow block authoring by anyone or just root. - */ - v0: new StorageType('Subspace.AllowAuthoringByAnyone', 'Default', [], sts.boolean()) as AllowAuthoringByAnyoneV0, -} - -/** - * Allow block authoring by anyone or just root. - */ -export interface AllowAuthoringByAnyoneV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const rootPlotPublicKey = { - /** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ - v0: new StorageType('Subspace.RootPlotPublicKey', 'Optional', [], v0.Public) as RootPlotPublicKeyV0, -} - -/** - * Root plot public key. - * - * Set just once to make sure no one else can author blocks until allowed for anyone. - */ -export interface RootPlotPublicKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Public | undefined)> -} - -export const blockSlots = { - /** - * Bounded mapping from block number to slot - */ - v3: new StorageType('Subspace.BlockSlots', 'Default', [], sts.array(() => sts.tuple(() => [sts.number(), v3.Slot]))) as BlockSlotsV3, -} - -/** - * Bounded mapping from block number to slot - */ -export interface BlockSlotsV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v3.Slot][] - get(block: Block): Promise<([number, v3.Slot][] | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/support.ts b/indexers/leaderboard-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/leaderboard-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/leaderboard-squid/src/types/system/calls.ts b/indexers/leaderboard-squid/src/types/system/calls.ts deleted file mode 100644 index 24f23464e..000000000 --- a/indexers/leaderboard-squid/src/types/system/calls.ts +++ /dev/null @@ -1,146 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const remark = { - name: 'System.remark', - /** - * See [`Pallet::remark`]. - */ - v0: new CallType( - 'System.remark', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const setHeapPages = { - name: 'System.set_heap_pages', - /** - * See [`Pallet::set_heap_pages`]. - */ - v0: new CallType( - 'System.set_heap_pages', - sts.struct({ - pages: sts.bigint(), - }) - ), -} - -export const setCode = { - name: 'System.set_code', - /** - * See [`Pallet::set_code`]. - */ - v0: new CallType( - 'System.set_code', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setCodeWithoutChecks = { - name: 'System.set_code_without_checks', - /** - * See [`Pallet::set_code_without_checks`]. - */ - v0: new CallType( - 'System.set_code_without_checks', - sts.struct({ - code: sts.bytes(), - }) - ), -} - -export const setStorage = { - name: 'System.set_storage', - /** - * See [`Pallet::set_storage`]. - */ - v0: new CallType( - 'System.set_storage', - sts.struct({ - items: sts.array(() => sts.tuple(() => [sts.bytes(), sts.bytes()])), - }) - ), -} - -export const killStorage = { - name: 'System.kill_storage', - /** - * See [`Pallet::kill_storage`]. - */ - v0: new CallType( - 'System.kill_storage', - sts.struct({ - keys: sts.array(() => sts.bytes()), - }) - ), -} - -export const killPrefix = { - name: 'System.kill_prefix', - /** - * See [`Pallet::kill_prefix`]. - */ - v0: new CallType( - 'System.kill_prefix', - sts.struct({ - prefix: sts.bytes(), - subkeys: sts.number(), - }) - ), -} - -export const remarkWithEvent = { - name: 'System.remark_with_event', - /** - * See [`Pallet::remark_with_event`]. - */ - v0: new CallType( - 'System.remark_with_event', - sts.struct({ - remark: sts.bytes(), - }) - ), -} - -export const authorizeUpgrade = { - name: 'System.authorize_upgrade', - /** - * See [`Pallet::authorize_upgrade`]. - */ - v0: new CallType( - 'System.authorize_upgrade', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const authorizeUpgradeWithoutChecks = { - name: 'System.authorize_upgrade_without_checks', - /** - * See [`Pallet::authorize_upgrade_without_checks`]. - */ - v0: new CallType( - 'System.authorize_upgrade_without_checks', - sts.struct({ - codeHash: v0.H256, - }) - ), -} - -export const applyAuthorizedUpgrade = { - name: 'System.apply_authorized_upgrade', - /** - * See [`Pallet::apply_authorized_upgrade`]. - */ - v0: new CallType( - 'System.apply_authorized_upgrade', - sts.struct({ - code: sts.bytes(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/constants.ts b/indexers/leaderboard-squid/src/types/system/constants.ts deleted file mode 100644 index 653ab1df2..000000000 --- a/indexers/leaderboard-squid/src/types/system/constants.ts +++ /dev/null @@ -1,66 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockWeights = { - /** - * Block & extrinsics weights: base values and limits. - */ - v0: new ConstantType( - 'System.BlockWeights', - v0.BlockWeights - ), -} - -export const blockLength = { - /** - * The maximum length of a block (in bytes). - */ - v0: new ConstantType( - 'System.BlockLength', - v0.BlockLength - ), -} - -export const blockHashCount = { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - */ - v0: new ConstantType( - 'System.BlockHashCount', - sts.number() - ), -} - -export const dbWeight = { - /** - * The weight of runtime database operations the runtime can invoke. - */ - v0: new ConstantType( - 'System.DbWeight', - v0.RuntimeDbWeight - ), -} - -export const version = { - /** - * Get the chain's current version. - */ - v0: new ConstantType( - 'System.Version', - v0.RuntimeVersion - ), -} - -export const ss58Prefix = { - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - */ - v0: new ConstantType( - 'System.SS58Prefix', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/events.ts b/indexers/leaderboard-squid/src/types/system/events.ts deleted file mode 100644 index 2c8c5731b..000000000 --- a/indexers/leaderboard-squid/src/types/system/events.ts +++ /dev/null @@ -1,94 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const extrinsicSuccess = { - name: 'System.ExtrinsicSuccess', - /** - * An extrinsic completed successfully. - */ - v0: new EventType( - 'System.ExtrinsicSuccess', - sts.struct({ - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const extrinsicFailed = { - name: 'System.ExtrinsicFailed', - /** - * An extrinsic failed. - */ - v0: new EventType( - 'System.ExtrinsicFailed', - sts.struct({ - dispatchError: v0.DispatchError, - dispatchInfo: v0.DispatchInfo, - }) - ), -} - -export const codeUpdated = { - name: 'System.CodeUpdated', - /** - * `:code` was updated. - */ - v0: new EventType( - 'System.CodeUpdated', - sts.unit() - ), -} - -export const newAccount = { - name: 'System.NewAccount', - /** - * A new account was created. - */ - v0: new EventType( - 'System.NewAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const killedAccount = { - name: 'System.KilledAccount', - /** - * An account was reaped. - */ - v0: new EventType( - 'System.KilledAccount', - sts.struct({ - account: v0.AccountId32, - }) - ), -} - -export const remarked = { - name: 'System.Remarked', - /** - * On on-chain remark happened. - */ - v0: new EventType( - 'System.Remarked', - sts.struct({ - sender: v0.AccountId32, - hash: v0.H256, - }) - ), -} - -export const upgradeAuthorized = { - name: 'System.UpgradeAuthorized', - /** - * An upgrade was authorized. - */ - v0: new EventType( - 'System.UpgradeAuthorized', - sts.struct({ - codeHash: v0.H256, - checkVersion: sts.boolean(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/system/storage.ts b/indexers/leaderboard-squid/src/types/system/storage.ts deleted file mode 100644 index 9f776b387..000000000 --- a/indexers/leaderboard-squid/src/types/system/storage.ts +++ /dev/null @@ -1,405 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' - -export const account = { - /** - * The full account information for a particular account ID. - */ - v0: new StorageType('System.Account', 'Default', [v0.AccountId32], v0.AccountInfo) as AccountV0, -} - -/** - * The full account information for a particular account ID. - */ -export interface AccountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.AccountInfo - get(block: Block, key: v0.AccountId32): Promise<(v0.AccountInfo | undefined)> - getMany(block: Block, keys: v0.AccountId32[]): Promise<(v0.AccountInfo | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.AccountId32): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable - getPairs(block: Block): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairs(block: Block, key: v0.AccountId32): Promise<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.AccountId32): AsyncIterable<[k: v0.AccountId32, v: (v0.AccountInfo | undefined)][]> -} - -export const extrinsicCount = { - /** - * Total extrinsics count for the current block. - */ - v0: new StorageType('System.ExtrinsicCount', 'Optional', [], sts.number()) as ExtrinsicCountV0, -} - -/** - * Total extrinsics count for the current block. - */ -export interface ExtrinsicCountV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockWeight = { - /** - * The current weight for the block. - */ - v0: new StorageType('System.BlockWeight', 'Default', [], v0.PerDispatchClass) as BlockWeightV0, -} - -/** - * The current weight for the block. - */ -export interface BlockWeightV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.PerDispatchClass - get(block: Block): Promise<(v0.PerDispatchClass | undefined)> -} - -export const allExtrinsicsLen = { - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ - v0: new StorageType('System.AllExtrinsicsLen', 'Optional', [], sts.number()) as AllExtrinsicsLenV0, -} - -/** - * Total length (in bytes) for all extrinsics put together, for the current block. - */ -export interface AllExtrinsicsLenV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(number | undefined)> -} - -export const blockHash = { - /** - * Map of block numbers to block hashes. - */ - v0: new StorageType('System.BlockHash', 'Default', [sts.number()], v0.H256) as BlockHashV0, -} - -/** - * Map of block numbers to block hashes. - */ -export interface BlockHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block, key: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.H256 | undefined)][]> -} - -export const extrinsicData = { - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ - v0: new StorageType('System.ExtrinsicData', 'Default', [sts.number()], sts.bytes()) as ExtrinsicDataV0, -} - -/** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - */ -export interface ExtrinsicDataV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): Bytes - get(block: Block, key: number): Promise<(Bytes | undefined)> - getMany(block: Block, keys: number[]): Promise<(Bytes | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (Bytes | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (Bytes | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (Bytes | undefined)][]> -} - -export const number = { - /** - * The current block number being processed. Set by `execute_block`. - */ - v0: new StorageType('System.Number', 'Default', [], sts.number()) as NumberV0, -} - -/** - * The current block number being processed. Set by `execute_block`. - */ -export interface NumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const parentHash = { - /** - * Hash of the previous block. - */ - v0: new StorageType('System.ParentHash', 'Default', [], v0.H256) as ParentHashV0, -} - -/** - * Hash of the previous block. - */ -export interface ParentHashV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256 - get(block: Block): Promise<(v0.H256 | undefined)> -} - -export const digest = { - /** - * Digest of the current block, also part of the block header. - */ - v0: new StorageType('System.Digest', 'Default', [], v0.Digest) as DigestV0, -} - -/** - * Digest of the current block, also part of the block header. - */ -export interface DigestV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Digest - get(block: Block): Promise<(v0.Digest | undefined)> -} - -export const events = { - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v0: new StorageType('System.Events', 'Default', [], sts.array(() => v0.EventRecord)) as EventsV0, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v1: new StorageType('System.Events', 'Default', [], sts.array(() => v1.EventRecord)) as EventsV1, - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ - v5: new StorageType('System.Events', 'Default', [], sts.array(() => v5.EventRecord)) as EventsV5, -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.EventRecord[] - get(block: Block): Promise<(v0.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.EventRecord[] - get(block: Block): Promise<(v1.EventRecord[] | undefined)> -} - -/** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - */ -export interface EventsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v5.EventRecord[] - get(block: Block): Promise<(v5.EventRecord[] | undefined)> -} - -export const eventCount = { - /** - * The number of events in the `Events` list. - */ - v0: new StorageType('System.EventCount', 'Default', [], sts.number()) as EventCountV0, -} - -/** - * The number of events in the `Events` list. - */ -export interface EventCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const eventTopics = { - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ - v0: new StorageType('System.EventTopics', 'Default', [v0.H256], sts.array(() => sts.tuple(() => [sts.number(), sts.number()]))) as EventTopicsV0, -} - -/** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - */ -export interface EventTopicsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, number][] - get(block: Block, key: v0.H256): Promise<([number, number][] | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<([number, number][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: ([number, number][] | undefined)][]> -} - -export const lastRuntimeUpgrade = { - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ - v0: new StorageType('System.LastRuntimeUpgrade', 'Optional', [], v0.LastRuntimeUpgradeInfo) as LastRuntimeUpgradeV0, -} - -/** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - */ -export interface LastRuntimeUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.LastRuntimeUpgradeInfo | undefined)> -} - -export const upgradedToU32RefCount = { - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ - v0: new StorageType('System.UpgradedToU32RefCount', 'Default', [], sts.boolean()) as UpgradedToU32RefCountV0, -} - -/** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - */ -export interface UpgradedToU32RefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const upgradedToTripleRefCount = { - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ - v0: new StorageType('System.UpgradedToTripleRefCount', 'Default', [], sts.boolean()) as UpgradedToTripleRefCountV0, -} - -/** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - */ -export interface UpgradedToTripleRefCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const executionPhase = { - /** - * The execution phase of the block. - */ - v0: new StorageType('System.ExecutionPhase', 'Optional', [], v0.Phase) as ExecutionPhaseV0, -} - -/** - * The execution phase of the block. - */ -export interface ExecutionPhaseV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.Phase | undefined)> -} - -export const authorizedUpgrade = { - /** - * `Some` if a code upgrade has been authorized. - */ - v0: new StorageType('System.AuthorizedUpgrade', 'Optional', [], v0.CodeUpgradeAuthorization) as AuthorizedUpgradeV0, -} - -/** - * `Some` if a code upgrade has been authorized. - */ -export interface AuthorizedUpgradeV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CodeUpgradeAuthorization | undefined)> -} - -export const inherentsApplied = { - /** - * Whether all inherents have been applied. - */ - v5: new StorageType('System.InherentsApplied', 'Default', [], sts.boolean()) as InherentsAppliedV5, -} - -/** - * Whether all inherents have been applied. - */ -export interface InherentsAppliedV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts b/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts deleted file mode 100644 index 60de86b39..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/constants.ts +++ /dev/null @@ -1,43 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const minReplicationFactor = { - /** - * Minimum desired number of replicas of the blockchain to be stored by the network, - * impacts storage fees. - */ - v0: new ConstantType( - 'TransactionFees.MinReplicationFactor', - sts.number() - ), -} - -export const creditSupply = { - /** - * How many credits there is in circulation. - */ - v0: new ConstantType( - 'TransactionFees.CreditSupply', - sts.bigint() - ), -} - -export const totalSpacePledged = { - /** - * How much space there is on the network. - */ - v0: new ConstantType( - 'TransactionFees.TotalSpacePledged', - sts.bigint() - ), -} - -export const blockchainHistorySize = { - /** - * How big is the history of the blockchain in archived state (thus includes erasure - * coding, but not replication). - */ - v0: new ConstantType( - 'TransactionFees.BlockchainHistorySize', - sts.bigint() - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts b/indexers/leaderboard-squid/src/types/transaction-fees/events.ts deleted file mode 100644 index 4726ccd18..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/events.ts +++ /dev/null @@ -1,54 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const blockFees = { - name: 'TransactionFees.BlockFees', - /** - * Storage fees. - */ - v0: new EventType( - 'TransactionFees.BlockFees', - sts.struct({ - /** - * Block author that received the fees. - */ - who: v0.AccountId32, - /** - * Amount of collected storage fees. - */ - storage: sts.bigint(), - /** - * Amount of collected compute fees. - */ - compute: sts.bigint(), - /** - * Amount of collected tips. - */ - tips: sts.bigint(), - }) - ), -} - -export const burnedBlockFees = { - name: 'TransactionFees.BurnedBlockFees', - /** - * Fees burned due to equivocated block author. - */ - v0: new EventType( - 'TransactionFees.BurnedBlockFees', - sts.struct({ - /** - * Amount of burned storage fees. - */ - storage: sts.bigint(), - /** - * Amount of burned compute fees. - */ - compute: sts.bigint(), - /** - * Amount of burned tips. - */ - tips: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts b/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts deleted file mode 100644 index 34c003453..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-fees/storage.ts +++ /dev/null @@ -1,86 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionByteFee = { - /** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ - v0: new StorageType('TransactionFees.TransactionByteFee', 'Default', [], v0.BlockTransactionByteFee) as TransactionByteFeeV0, -} - -/** - * The value of `transaction_byte_fee` for both the current and the next block. - * - * The `next` value of `transaction_byte_fee` is updated at block finalization and used to - * validate extrinsic to be included in the next block, the value is move to `current` at - * block initialization and used to execute extrinsic in the current block. Together it - * ensure we use the same value for both validating and executing the extrinsic. - * - * NOTE: both the `current` and `next` value is set to the default `Balance::max_value` in - * the genesis block which means there will be no signed extrinsic included in block #1. - */ -export interface TransactionByteFeeV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BlockTransactionByteFee - get(block: Block): Promise<(v0.BlockTransactionByteFee | undefined)> -} - -export const isDuringBlockExecution = { - /** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ - v0: new StorageType('TransactionFees.IsDuringBlockExecution', 'Default', [], sts.boolean()) as IsDuringBlockExecutionV0, -} - -/** - * Temporary value (cleared at block finalization) used to determine if the `transaction_byte_fee` - * is used to validate extrinsic or execute extrinsic. - */ -export interface IsDuringBlockExecutionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block): Promise<(boolean | undefined)> -} - -export const blockAuthor = { - /** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.BlockAuthor', 'Optional', [], v0.AccountId32) as BlockAuthorV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block author, so we - * can issue fees during block finalization. - */ -export interface BlockAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.AccountId32 | undefined)> -} - -export const collectedBlockFees = { - /** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ - v0: new StorageType('TransactionFees.CollectedBlockFees', 'Optional', [], v0.CollectedFees) as CollectedBlockFeesV0, -} - -/** - * Temporary value (cleared at block finalization) which contains current block fees, so we can - * issue fees during block finalization. - */ -export interface CollectedBlockFeesV0 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v0.CollectedFees | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts b/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts deleted file mode 100644 index 92856764a..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' - -export const operationalFeeMultiplier = { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - */ - v0: new ConstantType( - 'TransactionPayment.OperationalFeeMultiplier', - sts.number() - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts b/indexers/leaderboard-squid/src/types/transaction-payment/events.ts deleted file mode 100644 index f2e82a56e..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/events.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const transactionFeePaid = { - name: 'TransactionPayment.TransactionFeePaid', - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ - v0: new EventType( - 'TransactionPayment.TransactionFeePaid', - sts.struct({ - who: v0.AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }) - ), -} diff --git a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts b/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts deleted file mode 100644 index 1fe2ddae7..000000000 --- a/indexers/leaderboard-squid/src/types/transaction-payment/storage.ts +++ /dev/null @@ -1,22 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' - -export const nextFeeMultiplier = { - v0: new StorageType('TransactionPayment.NextFeeMultiplier', 'Default', [], v0.FixedU128) as NextFeeMultiplierV0, -} - -export interface NextFeeMultiplierV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.FixedU128 - get(block: Block): Promise<(v0.FixedU128 | undefined)> -} - -export const storageVersion = { - v0: new StorageType('TransactionPayment.StorageVersion', 'Default', [], v0.Releases) as StorageVersionV0, -} - -export interface StorageVersionV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.Releases - get(block: Block): Promise<(v0.Releases | undefined)> -} diff --git a/indexers/leaderboard-squid/src/types/v0.ts b/indexers/leaderboard-squid/src/types/v0.ts deleted file mode 100644 index a00fca6ac..000000000 --- a/indexers/leaderboard-squid/src/types/v0.ts +++ /dev/null @@ -1,3281 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const HistorySize = sts.bigint() - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export const RuntimeDbWeight: sts.Type = sts.struct(() => { - return { - read: sts.bigint(), - write: sts.bigint(), - } -}) - -export interface RuntimeDbWeight { - read: bigint - write: bigint -} - -export const BlockLength: sts.Type = sts.struct(() => { - return { - max: Type_85, - } -}) - -export const Type_85: sts.Type = sts.struct(() => { - return { - normal: sts.number(), - operational: sts.number(), - mandatory: sts.number(), - } -}) - -export interface Type_85 { - normal: number - operational: number - mandatory: number -} - -export interface BlockLength { - max: Type_85 -} - -export const BlockWeights: sts.Type = sts.struct(() => { - return { - baseBlock: Weight, - maxBlock: Weight, - perClass: Type_81, - } -}) - -export const Type_81: sts.Type = sts.struct(() => { - return { - normal: WeightsPerClass, - operational: WeightsPerClass, - mandatory: WeightsPerClass, - } -}) - -export const WeightsPerClass: sts.Type = sts.struct(() => { - return { - baseExtrinsic: Weight, - maxExtrinsic: sts.option(() => Weight), - maxTotal: sts.option(() => Weight), - reserved: sts.option(() => Weight), - } -}) - -export interface WeightsPerClass { - baseExtrinsic: Weight - maxExtrinsic?: (Weight | undefined) - maxTotal?: (Weight | undefined) - reserved?: (Weight | undefined) -} - -export interface Type_81 { - normal: WeightsPerClass - operational: WeightsPerClass - mandatory: WeightsPerClass -} - -export interface BlockWeights { - baseBlock: Weight - maxBlock: Weight - perClass: Type_81 -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type Releases = Releases_V1Ancient | Releases_V2 - -export interface Releases_V1Ancient { - __kind: 'V1Ancient' -} - -export interface Releases_V2 { - __kind: 'V2' -} - -export const Releases: sts.Type = sts.closedEnum(() => { - return { - V1Ancient: sts.unit(), - V2: sts.unit(), - } -}) - -export type FixedU128 = bigint - -export const FixedU128 = sts.bigint() - -export interface CollectedFees { - storage: bigint - compute: bigint - tips: bigint -} - -export const CollectedFees: sts.Type = sts.struct(() => { - return { - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - } -}) - -export interface BlockTransactionByteFee { - current: bigint - next: bigint -} - -export const BlockTransactionByteFee: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.bigint(), - } -}) - -export interface Type_152 { - amount: bigint -} - -export const Type_152: sts.Type = sts.struct(() => { - return { - amount: sts.bigint(), - } -}) - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface ReserveData { - id: Bytes - amount: bigint -} - -export const ReserveData: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - } -}) - -export interface BalanceLock { - id: Bytes - amount: bigint - reasons: Reasons -} - -export type Reasons = Reasons_All | Reasons_Fee | Reasons_Misc - -export interface Reasons_All { - __kind: 'All' -} - -export interface Reasons_Fee { - __kind: 'Fee' -} - -export interface Reasons_Misc { - __kind: 'Misc' -} - -export const BalanceLock: sts.Type = sts.struct(() => { - return { - id: sts.bytes(), - amount: sts.bigint(), - reasons: Reasons, - } -}) - -export const Reasons: sts.Type = sts.closedEnum(() => { - return { - All: sts.unit(), - Fee: sts.unit(), - Misc: sts.unit(), - } -}) - -export interface AccountData { - free: bigint - reserved: bigint - frozen: bigint - flags: ExtraFlags -} - -export type ExtraFlags = bigint - -export const AccountData: sts.Type = sts.struct(() => { - return { - free: sts.bigint(), - reserved: sts.bigint(), - frozen: sts.bigint(), - flags: ExtraFlags, - } -}) - -export const ExtraFlags = sts.bigint() - -export type Randomness = Bytes - -export const Randomness = sts.bytes() - -export interface PotEntropyValue { - targetSlot?: (Slot | undefined) - entropy: Bytes -} - -export const PotEntropyValue: sts.Type = sts.struct(() => { - return { - targetSlot: sts.option(() => Slot), - entropy: sts.bytes(), - } -}) - -export type Signature = Bytes - -export const Signature = sts.bytes() - -export interface Scalar { - inner: Bytes -} - -export type PieceOffset = number - -export const Scalar: sts.Type = sts.struct(() => { - return { - inner: sts.bytes(), - } -}) - -export const PieceOffset = sts.number() - -export interface VoteVerificationData { - solutionRange: bigint - voteSolutionRange: bigint - currentSlot: Slot - parentSlot: Slot -} - -export const VoteVerificationData: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - voteSolutionRange: sts.bigint(), - currentSlot: Slot, - parentSlot: Slot, - } -}) - -export type SegmentIndex = bigint - -export type SegmentCommitment = Bytes - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export type Public = Bytes - -export interface SolutionRangeOverride { - solutionRange: bigint - votingSolutionRange: bigint -} - -export const SolutionRangeOverride: sts.Type = sts.struct(() => { - return { - solutionRange: sts.bigint(), - votingSolutionRange: sts.bigint(), - } -}) - -export interface SolutionRanges { - current: bigint - next?: (bigint | undefined) - votingCurrent: bigint - votingNext?: (bigint | undefined) -} - -export const SolutionRanges: sts.Type = sts.struct(() => { - return { - current: sts.bigint(), - next: sts.option(() => sts.bigint()), - votingCurrent: sts.bigint(), - votingNext: sts.option(() => sts.bigint()), - } -}) - -export type NonZeroU32 = number - -export const NonZeroU32 = sts.number() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export interface CodeUpgradeAuthorization { - codeHash: H256 - checkVersion: boolean -} - -export const CodeUpgradeAuthorization: sts.Type = sts.struct(() => { - return { - codeHash: H256, - checkVersion: sts.boolean(), - } -}) - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export interface LastRuntimeUpgradeInfo { - specVersion: number - specName: string -} - -export const LastRuntimeUpgradeInfo: sts.Type = sts.struct(() => { - return { - specVersion: sts.number(), - specName: sts.string(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export interface Digest { - logs: DigestItem[] -} - -export type DigestItem = DigestItem_Consensus | DigestItem_Other | DigestItem_PreRuntime | DigestItem_RuntimeEnvironmentUpdated | DigestItem_Seal - -export interface DigestItem_Consensus { - __kind: 'Consensus' - value: [Bytes, Bytes] -} - -export interface DigestItem_Other { - __kind: 'Other' - value: Bytes -} - -export interface DigestItem_PreRuntime { - __kind: 'PreRuntime' - value: [Bytes, Bytes] -} - -export interface DigestItem_RuntimeEnvironmentUpdated { - __kind: 'RuntimeEnvironmentUpdated' -} - -export interface DigestItem_Seal { - __kind: 'Seal' - value: [Bytes, Bytes] -} - -export const Digest: sts.Type = sts.struct(() => { - return { - logs: sts.array(() => DigestItem), - } -}) - -export const DigestItem: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.tuple(() => [sts.bytes(), sts.bytes()]), - Other: sts.bytes(), - PreRuntime: sts.tuple(() => [sts.bytes(), sts.bytes()]), - RuntimeEnvironmentUpdated: sts.unit(), - Seal: sts.tuple(() => [sts.bytes(), sts.bytes()]), - } -}) - -export type H256 = Bytes - -export interface PerDispatchClass { - normal: Weight - operational: Weight - mandatory: Weight -} - -export const PerDispatchClass: sts.Type = sts.struct(() => { - return { - normal: Weight, - operational: Weight, - mandatory: Weight, - } -}) - -export type AccountId32 = Bytes - -export interface AccountInfo { - nonce: number - consumers: number - providers: number - sufficients: number - data: AccountData -} - -export const AccountInfo: sts.Type = sts.struct(() => { - return { - nonce: sts.number(), - consumers: sts.number(), - providers: sts.number(), - sufficients: sts.number(), - data: AccountData, - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const MultiAddress: sts.Type = sts.closedEnum(() => { - return { - Address20: sts.bytes(), - Address32: sts.bytes(), - Id: AccountId32, - Index: sts.unit(), - Raw: sts.bytes(), - } -}) - -export type MultiAddress = MultiAddress_Address20 | MultiAddress_Address32 | MultiAddress_Id | MultiAddress_Index | MultiAddress_Raw - -export interface MultiAddress_Address20 { - __kind: 'Address20' - value: Bytes -} - -export interface MultiAddress_Address32 { - __kind: 'Address32' - value: Bytes -} - -export interface MultiAddress_Id { - __kind: 'Id' - value: AccountId32 -} - -export interface MultiAddress_Index { - __kind: 'Index' -} - -export interface MultiAddress_Raw { - __kind: 'Raw' - value: Bytes -} - -export const EnableRewardsAt: sts.Type = sts.closedEnum(() => { - return { - Height: sts.option(() => sts.number()), - Manually: sts.unit(), - SolutionRange: sts.bigint(), - } -}) - -export type EnableRewardsAt = EnableRewardsAt_Height | EnableRewardsAt_Manually | EnableRewardsAt_SolutionRange - -export interface EnableRewardsAt_Height { - __kind: 'Height' - value?: (number | undefined) -} - -export interface EnableRewardsAt_Manually { - __kind: 'Manually' -} - -export interface EnableRewardsAt_SolutionRange { - __kind: 'SolutionRange' - value: bigint -} - -export const SignedVote: sts.Type = sts.struct(() => { - return { - vote: Vote, - signature: Signature, - } -}) - -export const Vote: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - height: sts.number(), - parentHash: H256, - slot: Slot, - solution: Solution, - proofOfTime: PotOutput, - futureProofOfTime: PotOutput, - }), - } -}) - -export const PotOutput = sts.bytes() - -export const Solution: sts.Type = sts.struct(() => { - return { - publicKey: Public, - rewardAddress: AccountId32, - sectorIndex: sts.number(), - historySize: HistorySize, - pieceOffset: PieceOffset, - recordCommitment: RecordCommitment, - recordWitness: RecordWitness, - chunk: Scalar, - chunkWitness: ChunkWitness, - proofOfSpace: PosProof, - } -}) - -export const PosProof = sts.bytes() - -export const ChunkWitness = sts.bytes() - -export const RecordWitness = sts.bytes() - -export const RecordCommitment = sts.bytes() - -export interface Solution { - publicKey: Public - rewardAddress: AccountId32 - sectorIndex: number - historySize: HistorySize - pieceOffset: PieceOffset - recordCommitment: RecordCommitment - recordWitness: RecordWitness - chunk: Scalar - chunkWitness: ChunkWitness - proofOfSpace: PosProof -} - -export type PosProof = Bytes - -export type ChunkWitness = Bytes - -export type RecordWitness = Bytes - -export type RecordCommitment = Bytes - -export type HistorySize = bigint - -export type Vote = Vote_V0 - -export interface Vote_V0 { - __kind: 'V0' - height: number - parentHash: H256 - slot: Slot - solution: Solution - proofOfTime: PotOutput - futureProofOfTime: PotOutput -} - -export type PotOutput = Bytes - -export interface SignedVote { - vote: Vote - signature: Signature -} - -export const EquivocationProof: sts.Type = sts.struct(() => { - return { - offender: Public, - slot: Slot, - firstHeader: Header, - secondHeader: Header, - } -}) - -export const Header: sts.Type
= sts.struct(() => { - return { - parentHash: H256, - number: sts.number(), - stateRoot: H256, - extrinsicsRoot: H256, - digest: Digest, - } -}) - -export interface Header { - parentHash: H256 - number: number - stateRoot: H256 - extrinsicsRoot: H256 - digest: Digest -} - -export interface EquivocationProof { - offender: Public - slot: Slot - firstHeader: Header - secondHeader: Header -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const DomainId = sts.number() - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Public = sts.bytes() - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export const AccountId32 = sts.bytes() - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) diff --git a/indexers/leaderboard-squid/src/types/v1.ts b/indexers/leaderboard-squid/src/types/v1.ts deleted file mode 100644 index 4891a0287..000000000 --- a/indexers/leaderboard-squid/src/types/v1.ts +++ /dev/null @@ -1,2706 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author. - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter. - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export type Slot = bigint - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export const Slot = sts.bigint() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/leaderboard-squid/src/types/v3.ts b/indexers/leaderboard-squid/src/types/v3.ts deleted file mode 100644 index 73fc962ae..000000000 --- a/indexers/leaderboard-squid/src/types/v3.ts +++ /dev/null @@ -1,205 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface RewardPoint { - block: number - subsidy: bigint -} - -export type DomainId = number - -export const DomainId = sts.number() - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() - -export type AccountId32 = Bytes - -export interface IdAmount { - id: HoldIdentifier - amount: bigint -} - -export type HoldIdentifier = HoldIdentifier_Domains | HoldIdentifier_Messenger - -export interface HoldIdentifier_Domains { - __kind: 'Domains' - value: DomainsHoldIdentifier -} - -export interface HoldIdentifier_Messenger { - __kind: 'Messenger' - value: MessengerHoldIdentifier -} - -export type MessengerHoldIdentifier = MessengerHoldIdentifier_Channel - -export interface MessengerHoldIdentifier_Channel { - __kind: 'Channel' - value: [ChainId, bigint] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export type DomainsHoldIdentifier = DomainsHoldIdentifier_DomainInstantiation | DomainsHoldIdentifier_Staking | DomainsHoldIdentifier_StorageFund - -export interface DomainsHoldIdentifier_DomainInstantiation { - __kind: 'DomainInstantiation' - value: DomainId -} - -export interface DomainsHoldIdentifier_Staking { - __kind: 'Staking' - value: StakingHoldIdentifier -} - -export interface DomainsHoldIdentifier_StorageFund { - __kind: 'StorageFund' - value: bigint -} - -export type StakingHoldIdentifier = StakingHoldIdentifier_Staked - -export interface StakingHoldIdentifier_Staked { - __kind: 'Staked' - value: bigint -} - -export const IdAmount: sts.Type = sts.struct(() => { - return { - id: HoldIdentifier, - amount: sts.bigint(), - } -}) - -export const HoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Domains: DomainsHoldIdentifier, - Messenger: MessengerHoldIdentifier, - } -}) - -export const MessengerHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Channel: sts.tuple(() => [ChainId, sts.bigint()]), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const DomainsHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - DomainInstantiation: DomainId, - Staking: StakingHoldIdentifier, - StorageFund: sts.bigint(), - } -}) - -export const StakingHoldIdentifier: sts.Type = sts.closedEnum(() => { - return { - Staked: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export type Slot = bigint - -export const Slot = sts.bigint() - -export const RewardPoint: sts.Type = sts.struct(() => { - return { - block: sts.number(), - subsidy: sts.bigint(), - } -}) diff --git a/indexers/leaderboard-squid/src/types/v5.ts b/indexers/leaderboard-squid/src/types/v5.ts deleted file mode 100644 index f626e91f8..000000000 --- a/indexers/leaderboard-squid/src/types/v5.ts +++ /dev/null @@ -1,2724 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface EventRecord { - phase: Phase - event: Event - topics: H256[] -} - -export type Event = Event_Balances | Event_Domains | Event_Messenger | Event_OffencesSubspace | Event_Rewards | Event_Subspace | Event_Sudo | Event_System | Event_TransactionFees | Event_TransactionPayment | Event_Transporter | Event_Utility | Event_Vesting - -export interface Event_Balances { - __kind: 'Balances' - value: BalancesEvent -} - -export interface Event_Domains { - __kind: 'Domains' - value: DomainsEvent -} - -export interface Event_Messenger { - __kind: 'Messenger' - value: MessengerEvent -} - -export interface Event_OffencesSubspace { - __kind: 'OffencesSubspace' - value: OffencesSubspaceEvent -} - -export interface Event_Rewards { - __kind: 'Rewards' - value: RewardsEvent -} - -export interface Event_Subspace { - __kind: 'Subspace' - value: SubspaceEvent -} - -export interface Event_Sudo { - __kind: 'Sudo' - value: SudoEvent -} - -export interface Event_System { - __kind: 'System' - value: SystemEvent -} - -export interface Event_TransactionFees { - __kind: 'TransactionFees' - value: TransactionFeesEvent -} - -export interface Event_TransactionPayment { - __kind: 'TransactionPayment' - value: TransactionPaymentEvent -} - -export interface Event_Transporter { - __kind: 'Transporter' - value: TransporterEvent -} - -export interface Event_Utility { - __kind: 'Utility' - value: UtilityEvent -} - -export interface Event_Vesting { - __kind: 'Vesting' - value: VestingEvent -} - -/** - * The `Event` enum of this pallet - */ -export type VestingEvent = VestingEvent_Claimed | VestingEvent_VestingScheduleAdded | VestingEvent_VestingSchedulesUpdated - -/** - * Claimed vesting. - */ -export interface VestingEvent_Claimed { - __kind: 'Claimed' - who: AccountId32 - amount: bigint -} - -/** - * Added new vesting schedule. - */ -export interface VestingEvent_VestingScheduleAdded { - __kind: 'VestingScheduleAdded' - from: AccountId32 - to: AccountId32 - vestingSchedule: VestingSchedule -} - -/** - * Updated vesting schedules. - */ -export interface VestingEvent_VestingSchedulesUpdated { - __kind: 'VestingSchedulesUpdated' - who: AccountId32 -} - -export interface VestingSchedule { - start: number - period: number - periodCount: number - perPeriod: bigint -} - -/** - * The `Event` enum of this pallet - */ -export type UtilityEvent = UtilityEvent_BatchCompleted | UtilityEvent_BatchCompletedWithErrors | UtilityEvent_BatchInterrupted | UtilityEvent_DispatchedAs | UtilityEvent_ItemCompleted | UtilityEvent_ItemFailed - -/** - * Batch of dispatches completed fully with no error. - */ -export interface UtilityEvent_BatchCompleted { - __kind: 'BatchCompleted' -} - -/** - * Batch of dispatches completed but has errors. - */ -export interface UtilityEvent_BatchCompletedWithErrors { - __kind: 'BatchCompletedWithErrors' -} - -/** - * Batch of dispatches did not complete fully. Index of first failing dispatch given, as - * well as the error. - */ -export interface UtilityEvent_BatchInterrupted { - __kind: 'BatchInterrupted' - index: number - error: DispatchError -} - -/** - * A call was dispatched. - */ -export interface UtilityEvent_DispatchedAs { - __kind: 'DispatchedAs' - result: Result -} - -/** - * A single item within a Batch of dispatches has completed with no error. - */ -export interface UtilityEvent_ItemCompleted { - __kind: 'ItemCompleted' -} - -/** - * A single item within a Batch of dispatches has completed with error. - */ -export interface UtilityEvent_ItemFailed { - __kind: 'ItemFailed' - error: DispatchError -} - -export type DispatchError = DispatchError_Arithmetic | DispatchError_BadOrigin | DispatchError_CannotLookup | DispatchError_ConsumerRemaining | DispatchError_Corruption | DispatchError_Exhausted | DispatchError_Module | DispatchError_NoProviders | DispatchError_Other | DispatchError_RootNotAllowed | DispatchError_Token | DispatchError_TooManyConsumers | DispatchError_Transactional | DispatchError_Unavailable - -export interface DispatchError_Arithmetic { - __kind: 'Arithmetic' - value: ArithmeticError -} - -export interface DispatchError_BadOrigin { - __kind: 'BadOrigin' -} - -export interface DispatchError_CannotLookup { - __kind: 'CannotLookup' -} - -export interface DispatchError_ConsumerRemaining { - __kind: 'ConsumerRemaining' -} - -export interface DispatchError_Corruption { - __kind: 'Corruption' -} - -export interface DispatchError_Exhausted { - __kind: 'Exhausted' -} - -export interface DispatchError_Module { - __kind: 'Module' - value: ModuleError -} - -export interface DispatchError_NoProviders { - __kind: 'NoProviders' -} - -export interface DispatchError_Other { - __kind: 'Other' -} - -export interface DispatchError_RootNotAllowed { - __kind: 'RootNotAllowed' -} - -export interface DispatchError_Token { - __kind: 'Token' - value: TokenError -} - -export interface DispatchError_TooManyConsumers { - __kind: 'TooManyConsumers' -} - -export interface DispatchError_Transactional { - __kind: 'Transactional' - value: TransactionalError -} - -export interface DispatchError_Unavailable { - __kind: 'Unavailable' -} - -export type TransactionalError = TransactionalError_LimitReached | TransactionalError_NoLayer - -export interface TransactionalError_LimitReached { - __kind: 'LimitReached' -} - -export interface TransactionalError_NoLayer { - __kind: 'NoLayer' -} - -export type TokenError = TokenError_BelowMinimum | TokenError_Blocked | TokenError_CannotCreate | TokenError_CannotCreateHold | TokenError_Frozen | TokenError_FundsUnavailable | TokenError_NotExpendable | TokenError_OnlyProvider | TokenError_UnknownAsset | TokenError_Unsupported - -export interface TokenError_BelowMinimum { - __kind: 'BelowMinimum' -} - -export interface TokenError_Blocked { - __kind: 'Blocked' -} - -export interface TokenError_CannotCreate { - __kind: 'CannotCreate' -} - -export interface TokenError_CannotCreateHold { - __kind: 'CannotCreateHold' -} - -export interface TokenError_Frozen { - __kind: 'Frozen' -} - -export interface TokenError_FundsUnavailable { - __kind: 'FundsUnavailable' -} - -export interface TokenError_NotExpendable { - __kind: 'NotExpendable' -} - -export interface TokenError_OnlyProvider { - __kind: 'OnlyProvider' -} - -export interface TokenError_UnknownAsset { - __kind: 'UnknownAsset' -} - -export interface TokenError_Unsupported { - __kind: 'Unsupported' -} - -export interface ModuleError { - index: number - error: Bytes -} - -export type ArithmeticError = ArithmeticError_DivisionByZero | ArithmeticError_Overflow | ArithmeticError_Underflow - -export interface ArithmeticError_DivisionByZero { - __kind: 'DivisionByZero' -} - -export interface ArithmeticError_Overflow { - __kind: 'Overflow' -} - -export interface ArithmeticError_Underflow { - __kind: 'Underflow' -} - -/** - * Events emitted by pallet-transporter. - */ -export type TransporterEvent = TransporterEvent_IncomingTransferSuccessful | TransporterEvent_OutgoingTransferFailed | TransporterEvent_OutgoingTransferInitiated | TransporterEvent_OutgoingTransferSuccessful - -/** - * Emits when a given incoming transfer was successfully processed. - */ -export interface TransporterEvent_IncomingTransferSuccessful { - __kind: 'IncomingTransferSuccessful' - /** - * Source chain the transfer is coming from. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was failed on dst_chain. - */ -export interface TransporterEvent_OutgoingTransferFailed { - __kind: 'OutgoingTransferFailed' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] - /** - * Error from dst_chain endpoint. - */ - err: DispatchError -} - -/** - * Emits when there is a new outgoing transfer. - */ -export interface TransporterEvent_OutgoingTransferInitiated { - __kind: 'OutgoingTransferInitiated' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * Emits when a given outgoing transfer was successful. - */ -export interface TransporterEvent_OutgoingTransferSuccessful { - __kind: 'OutgoingTransferSuccessful' - /** - * Destination chain the transfer is bound to. - */ - chainId: ChainId - /** - * Id of the transfer. - */ - messageId: [bigint, bigint] -} - -/** - * The `Event` enum of this pallet - */ -export type TransactionPaymentEvent = TransactionPaymentEvent_TransactionFeePaid - -/** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - */ -export interface TransactionPaymentEvent_TransactionFeePaid { - __kind: 'TransactionFeePaid' - who: AccountId32 - actualFee: bigint - tip: bigint -} - -/** - * `pallet-transaction-fees` events - */ -export type TransactionFeesEvent = TransactionFeesEvent_BlockFees | TransactionFeesEvent_BurnedBlockFees - -/** - * Storage fees. - */ -export interface TransactionFeesEvent_BlockFees { - __kind: 'BlockFees' - /** - * Block author that received the fees. - */ - who: AccountId32 - /** - * Amount of collected storage fees. - */ - storage: bigint - /** - * Amount of collected compute fees. - */ - compute: bigint - /** - * Amount of collected tips. - */ - tips: bigint -} - -/** - * Fees burned due to equivocated block author or rewards not enabled. - */ -export interface TransactionFeesEvent_BurnedBlockFees { - __kind: 'BurnedBlockFees' - /** - * Amount of burned storage fees. - */ - storage: bigint - /** - * Amount of burned compute fees. - */ - compute: bigint - /** - * Amount of burned tips. - */ - tips: bigint -} - -/** - * Event for the System pallet. - */ -export type SystemEvent = SystemEvent_CodeUpdated | SystemEvent_ExtrinsicFailed | SystemEvent_ExtrinsicSuccess | SystemEvent_KilledAccount | SystemEvent_NewAccount | SystemEvent_Remarked | SystemEvent_UpgradeAuthorized - -/** - * `:code` was updated. - */ -export interface SystemEvent_CodeUpdated { - __kind: 'CodeUpdated' -} - -/** - * An extrinsic failed. - */ -export interface SystemEvent_ExtrinsicFailed { - __kind: 'ExtrinsicFailed' - dispatchError: DispatchError - dispatchInfo: DispatchInfo -} - -/** - * An extrinsic completed successfully. - */ -export interface SystemEvent_ExtrinsicSuccess { - __kind: 'ExtrinsicSuccess' - dispatchInfo: DispatchInfo -} - -/** - * An account was reaped. - */ -export interface SystemEvent_KilledAccount { - __kind: 'KilledAccount' - account: AccountId32 -} - -/** - * A new account was created. - */ -export interface SystemEvent_NewAccount { - __kind: 'NewAccount' - account: AccountId32 -} - -/** - * On on-chain remark happened. - */ -export interface SystemEvent_Remarked { - __kind: 'Remarked' - sender: AccountId32 - hash: H256 -} - -/** - * An upgrade was authorized. - */ -export interface SystemEvent_UpgradeAuthorized { - __kind: 'UpgradeAuthorized' - codeHash: H256 - checkVersion: boolean -} - -export interface DispatchInfo { - weight: Weight - class: DispatchClass - paysFee: Pays -} - -export type Pays = Pays_No | Pays_Yes - -export interface Pays_No { - __kind: 'No' -} - -export interface Pays_Yes { - __kind: 'Yes' -} - -export type DispatchClass = DispatchClass_Mandatory | DispatchClass_Normal | DispatchClass_Operational - -export interface DispatchClass_Mandatory { - __kind: 'Mandatory' -} - -export interface DispatchClass_Normal { - __kind: 'Normal' -} - -export interface DispatchClass_Operational { - __kind: 'Operational' -} - -/** - * The `Event` enum of this pallet - */ -export type SudoEvent = SudoEvent_KeyChanged | SudoEvent_KeyRemoved | SudoEvent_Sudid | SudoEvent_SudoAsDone - -/** - * The sudo key has been updated. - */ -export interface SudoEvent_KeyChanged { - __kind: 'KeyChanged' - /** - * The old sudo key (if one was previously set). - */ - old?: (AccountId32 | undefined) - /** - * The new sudo key (if one was set). - */ - new: AccountId32 -} - -/** - * The key was permanently removed. - */ -export interface SudoEvent_KeyRemoved { - __kind: 'KeyRemoved' -} - -/** - * A sudo call just took place. - */ -export interface SudoEvent_Sudid { - __kind: 'Sudid' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * A [sudo_as](Pallet::sudo_as) call just took place. - */ -export interface SudoEvent_SudoAsDone { - __kind: 'SudoAsDone' - /** - * The result of the call made by the sudo user. - */ - sudoResult: Result -} - -/** - * Events type. - */ -export type SubspaceEvent = SubspaceEvent_FarmerVote | SubspaceEvent_SegmentHeaderStored - -/** - * Farmer vote. - */ -export interface SubspaceEvent_FarmerVote { - __kind: 'FarmerVote' - publicKey: Public - rewardAddress: AccountId32 - height: number - parentHash: H256 -} - -/** - * Segment header was stored in blockchain history. - */ -export interface SubspaceEvent_SegmentHeaderStored { - __kind: 'SegmentHeaderStored' - segmentHeader: SegmentHeader -} - -export type SegmentHeader = SegmentHeader_V0 - -export interface SegmentHeader_V0 { - __kind: 'V0' - segmentIndex: SegmentIndex - segmentCommitment: SegmentCommitment - prevSegmentHeaderHash: Bytes - lastArchivedBlock: LastArchivedBlock -} - -export interface LastArchivedBlock { - number: number - archivedProgress: ArchivedBlockProgress -} - -export type ArchivedBlockProgress = ArchivedBlockProgress_Complete | ArchivedBlockProgress_Partial - -export interface ArchivedBlockProgress_Complete { - __kind: 'Complete' -} - -export interface ArchivedBlockProgress_Partial { - __kind: 'Partial' - value: number -} - -export type SegmentCommitment = Bytes - -export type SegmentIndex = bigint - -export type Public = Bytes - -/** - * `pallet-rewards` events - */ -export type RewardsEvent = RewardsEvent_BlockReward | RewardsEvent_VoteReward - -/** - * Issued reward for the block author - */ -export interface RewardsEvent_BlockReward { - __kind: 'BlockReward' - blockAuthor: AccountId32 - reward: bigint -} - -/** - * Issued reward for the voter - */ -export interface RewardsEvent_VoteReward { - __kind: 'VoteReward' - voter: AccountId32 - reward: bigint -} - -/** - * Events type. - */ -export type OffencesSubspaceEvent = OffencesSubspaceEvent_Offence - -/** - * There is an offence reported of the given `kind` happened at the `session_index` and - * (kind-specific) time slot. This event is not deposited for duplicate slashes. - * \[kind, timeslot\]. - */ -export interface OffencesSubspaceEvent_Offence { - __kind: 'Offence' - kind: Bytes - timeslot: Bytes -} - -/** - * `pallet-messenger` events - */ -export type MessengerEvent = MessengerEvent_ChannelClosed | MessengerEvent_ChannelInitiated | MessengerEvent_ChannelOpen | MessengerEvent_InboxMessage | MessengerEvent_InboxMessageResponse | MessengerEvent_OutboxMessage | MessengerEvent_OutboxMessageResponse | MessengerEvent_OutboxMessageResult - -/** - * Emits when a channel between two chains is closed. - */ -export interface MessengerEvent_ChannelClosed { - __kind: 'ChannelClosed' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chains is initiated. - */ -export interface MessengerEvent_ChannelInitiated { - __kind: 'ChannelInitiated' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a channel between two chain is open. - */ -export interface MessengerEvent_ChannelOpen { - __kind: 'ChannelOpen' - /** - * Foreign chain id this channel connects to. - */ - chainId: ChainId - /** - * Channel ID of the said channel. - */ - channelId: bigint -} - -/** - * Emits when a new inbox message is validated and added to Inbox. - */ -export interface MessengerEvent_InboxMessage { - __kind: 'InboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Inbox message. - */ -export interface MessengerEvent_InboxMessageResponse { - __kind: 'InboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits when a new message is added to the outbox. - */ -export interface MessengerEvent_OutboxMessage { - __kind: 'OutboxMessage' - chainId: ChainId - channelId: bigint - nonce: bigint -} - -/** - * Emits when a message response is available for Outbox message. - */ -export interface MessengerEvent_OutboxMessageResponse { - __kind: 'OutboxMessageResponse' - /** - * Destination chain ID. - */ - chainId: ChainId - /** - * Channel Is - */ - channelId: bigint - nonce: bigint -} - -/** - * Emits outbox message result. - */ -export interface MessengerEvent_OutboxMessageResult { - __kind: 'OutboxMessageResult' - chainId: ChainId - channelId: bigint - nonce: bigint - result: OutboxMessageResult -} - -export type OutboxMessageResult = Result - -/** - * The `Event` enum of this pallet - */ -export type DomainsEvent = DomainsEvent_BundleStored | DomainsEvent_DomainEpochCompleted | DomainsEvent_DomainInstantiated | DomainsEvent_DomainOperatorAllowListUpdated | DomainsEvent_DomainRuntimeCreated | DomainsEvent_DomainRuntimeUpgradeScheduled | DomainsEvent_DomainRuntimeUpgraded | DomainsEvent_ForceDomainEpochTransition | DomainsEvent_FraudProofProcessed | DomainsEvent_FundsUnlocked | DomainsEvent_OperatorDeregistered | DomainsEvent_OperatorNominated | DomainsEvent_OperatorRegistered | DomainsEvent_OperatorRewarded | DomainsEvent_OperatorSlashed | DomainsEvent_OperatorSwitchedDomain | DomainsEvent_OperatorTaxCollected | DomainsEvent_OperatorUnlocked | DomainsEvent_PreferredOperator | DomainsEvent_StorageFeeDeposited | DomainsEvent_WithdrewStake - -/** - * A domain bundle was included. - */ -export interface DomainsEvent_BundleStored { - __kind: 'BundleStored' - domainId: DomainId - bundleHash: H256 - bundleAuthor: bigint -} - -export interface DomainsEvent_DomainEpochCompleted { - __kind: 'DomainEpochCompleted' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_DomainInstantiated { - __kind: 'DomainInstantiated' - domainId: DomainId -} - -export interface DomainsEvent_DomainOperatorAllowListUpdated { - __kind: 'DomainOperatorAllowListUpdated' - domainId: DomainId -} - -export interface DomainsEvent_DomainRuntimeCreated { - __kind: 'DomainRuntimeCreated' - runtimeId: number - runtimeType: RuntimeType -} - -export interface DomainsEvent_DomainRuntimeUpgradeScheduled { - __kind: 'DomainRuntimeUpgradeScheduled' - runtimeId: number - scheduledAt: number -} - -export interface DomainsEvent_DomainRuntimeUpgraded { - __kind: 'DomainRuntimeUpgraded' - runtimeId: number -} - -export interface DomainsEvent_ForceDomainEpochTransition { - __kind: 'ForceDomainEpochTransition' - domainId: DomainId - completedEpochIndex: number -} - -export interface DomainsEvent_FraudProofProcessed { - __kind: 'FraudProofProcessed' - domainId: DomainId - newHeadReceiptNumber?: (number | undefined) -} - -export interface DomainsEvent_FundsUnlocked { - __kind: 'FundsUnlocked' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_OperatorDeregistered { - __kind: 'OperatorDeregistered' - operatorId: bigint -} - -export interface DomainsEvent_OperatorNominated { - __kind: 'OperatorNominated' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_OperatorRegistered { - __kind: 'OperatorRegistered' - operatorId: bigint - domainId: DomainId -} - -export interface DomainsEvent_OperatorRewarded { - __kind: 'OperatorRewarded' - operatorId: bigint - reward: bigint -} - -export interface DomainsEvent_OperatorSlashed { - __kind: 'OperatorSlashed' - operatorId: bigint - reason: SlashedReason -} - -export interface DomainsEvent_OperatorSwitchedDomain { - __kind: 'OperatorSwitchedDomain' - oldDomainId: DomainId - newDomainId: DomainId -} - -export interface DomainsEvent_OperatorTaxCollected { - __kind: 'OperatorTaxCollected' - operatorId: bigint - tax: bigint -} - -export interface DomainsEvent_OperatorUnlocked { - __kind: 'OperatorUnlocked' - operatorId: bigint -} - -export interface DomainsEvent_PreferredOperator { - __kind: 'PreferredOperator' - operatorId: bigint - nominatorId: AccountId32 -} - -export interface DomainsEvent_StorageFeeDeposited { - __kind: 'StorageFeeDeposited' - operatorId: bigint - nominatorId: AccountId32 - amount: bigint -} - -export interface DomainsEvent_WithdrewStake { - __kind: 'WithdrewStake' - operatorId: bigint - nominatorId: AccountId32 -} - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -/** - * The `Event` enum of this pallet - */ -export type BalancesEvent = BalancesEvent_BalanceSet | BalancesEvent_Burned | BalancesEvent_Deposit | BalancesEvent_DustLost | BalancesEvent_Endowed | BalancesEvent_Frozen | BalancesEvent_Issued | BalancesEvent_Locked | BalancesEvent_Minted | BalancesEvent_Rescinded | BalancesEvent_ReserveRepatriated | BalancesEvent_Reserved | BalancesEvent_Restored | BalancesEvent_Slashed | BalancesEvent_Suspended | BalancesEvent_Thawed | BalancesEvent_TotalIssuanceForced | BalancesEvent_Transfer | BalancesEvent_Unlocked | BalancesEvent_Unreserved | BalancesEvent_Upgraded | BalancesEvent_Withdraw - -/** - * A balance was set by root. - */ -export interface BalancesEvent_BalanceSet { - __kind: 'BalanceSet' - who: AccountId32 - free: bigint -} - -/** - * Some amount was burned from an account. - */ -export interface BalancesEvent_Burned { - __kind: 'Burned' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was deposited (e.g. for transaction fees). - */ -export interface BalancesEvent_Deposit { - __kind: 'Deposit' - who: AccountId32 - amount: bigint -} - -/** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - */ -export interface BalancesEvent_DustLost { - __kind: 'DustLost' - account: AccountId32 - amount: bigint -} - -/** - * An account was created with some free balance. - */ -export interface BalancesEvent_Endowed { - __kind: 'Endowed' - account: AccountId32 - freeBalance: bigint -} - -/** - * Some balance was frozen. - */ -export interface BalancesEvent_Frozen { - __kind: 'Frozen' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was increased by `amount`, creating a credit to be balanced. - */ -export interface BalancesEvent_Issued { - __kind: 'Issued' - amount: bigint -} - -/** - * Some balance was locked. - */ -export interface BalancesEvent_Locked { - __kind: 'Locked' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was minted into an account. - */ -export interface BalancesEvent_Minted { - __kind: 'Minted' - who: AccountId32 - amount: bigint -} - -/** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - */ -export interface BalancesEvent_Rescinded { - __kind: 'Rescinded' - amount: bigint -} - -/** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - */ -export interface BalancesEvent_ReserveRepatriated { - __kind: 'ReserveRepatriated' - from: AccountId32 - to: AccountId32 - amount: bigint - destinationStatus: BalanceStatus -} - -/** - * Some balance was reserved (moved from free to reserved). - */ -export interface BalancesEvent_Reserved { - __kind: 'Reserved' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was restored into an account. - */ -export interface BalancesEvent_Restored { - __kind: 'Restored' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was removed from the account (e.g. for misbehavior). - */ -export interface BalancesEvent_Slashed { - __kind: 'Slashed' - who: AccountId32 - amount: bigint -} - -/** - * Some amount was suspended from an account (it can be restored later). - */ -export interface BalancesEvent_Suspended { - __kind: 'Suspended' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was thawed. - */ -export interface BalancesEvent_Thawed { - __kind: 'Thawed' - who: AccountId32 - amount: bigint -} - -/** - * The `TotalIssuance` was forcefully changed. - */ -export interface BalancesEvent_TotalIssuanceForced { - __kind: 'TotalIssuanceForced' - old: bigint - new: bigint -} - -/** - * Transfer succeeded. - */ -export interface BalancesEvent_Transfer { - __kind: 'Transfer' - from: AccountId32 - to: AccountId32 - amount: bigint -} - -/** - * Some balance was unlocked. - */ -export interface BalancesEvent_Unlocked { - __kind: 'Unlocked' - who: AccountId32 - amount: bigint -} - -/** - * Some balance was unreserved (moved from reserved to free). - */ -export interface BalancesEvent_Unreserved { - __kind: 'Unreserved' - who: AccountId32 - amount: bigint -} - -/** - * An account was upgraded. - */ -export interface BalancesEvent_Upgraded { - __kind: 'Upgraded' - who: AccountId32 -} - -/** - * Some amount was withdrawn from the account (e.g. for transaction fees). - */ -export interface BalancesEvent_Withdraw { - __kind: 'Withdraw' - who: AccountId32 - amount: bigint -} - -export type BalanceStatus = BalanceStatus_Free | BalanceStatus_Reserved - -export interface BalanceStatus_Free { - __kind: 'Free' -} - -export interface BalanceStatus_Reserved { - __kind: 'Reserved' -} - -export type Phase = Phase_ApplyExtrinsic | Phase_Finalization | Phase_Initialization - -export interface Phase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - value: number -} - -export interface Phase_Finalization { - __kind: 'Finalization' -} - -export interface Phase_Initialization { - __kind: 'Initialization' -} - -export const EventRecord: sts.Type = sts.struct(() => { - return { - phase: Phase, - event: Event, - topics: sts.array(() => H256), - } -}) - -export const Event: sts.Type = sts.closedEnum(() => { - return { - Balances: BalancesEvent, - Domains: DomainsEvent, - Messenger: MessengerEvent, - OffencesSubspace: OffencesSubspaceEvent, - Rewards: RewardsEvent, - Subspace: SubspaceEvent, - Sudo: SudoEvent, - System: SystemEvent, - TransactionFees: TransactionFeesEvent, - TransactionPayment: TransactionPaymentEvent, - Transporter: TransporterEvent, - Utility: UtilityEvent, - Vesting: VestingEvent, - } -}) - -/** - * The `Event` enum of this pallet - */ -export const VestingEvent: sts.Type = sts.closedEnum(() => { - return { - Claimed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - VestingScheduleAdded: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - vestingSchedule: VestingSchedule, - }), - VestingSchedulesUpdated: sts.enumStruct({ - who: AccountId32, - }), - } -}) - -export const VestingSchedule: sts.Type = sts.struct(() => { - return { - start: sts.number(), - period: sts.number(), - periodCount: sts.number(), - perPeriod: sts.bigint(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const UtilityEvent: sts.Type = sts.closedEnum(() => { - return { - BatchCompleted: sts.unit(), - BatchCompletedWithErrors: sts.unit(), - BatchInterrupted: sts.enumStruct({ - index: sts.number(), - error: DispatchError, - }), - DispatchedAs: sts.enumStruct({ - result: sts.result(() => sts.unit(), () => DispatchError), - }), - ItemCompleted: sts.unit(), - ItemFailed: sts.enumStruct({ - error: DispatchError, - }), - } -}) - -export const DispatchError: sts.Type = sts.closedEnum(() => { - return { - Arithmetic: ArithmeticError, - BadOrigin: sts.unit(), - CannotLookup: sts.unit(), - ConsumerRemaining: sts.unit(), - Corruption: sts.unit(), - Exhausted: sts.unit(), - Module: ModuleError, - NoProviders: sts.unit(), - Other: sts.unit(), - RootNotAllowed: sts.unit(), - Token: TokenError, - TooManyConsumers: sts.unit(), - Transactional: TransactionalError, - Unavailable: sts.unit(), - } -}) - -export const TransactionalError: sts.Type = sts.closedEnum(() => { - return { - LimitReached: sts.unit(), - NoLayer: sts.unit(), - } -}) - -export const TokenError: sts.Type = sts.closedEnum(() => { - return { - BelowMinimum: sts.unit(), - Blocked: sts.unit(), - CannotCreate: sts.unit(), - CannotCreateHold: sts.unit(), - Frozen: sts.unit(), - FundsUnavailable: sts.unit(), - NotExpendable: sts.unit(), - OnlyProvider: sts.unit(), - UnknownAsset: sts.unit(), - Unsupported: sts.unit(), - } -}) - -export const ModuleError: sts.Type = sts.struct(() => { - return { - index: sts.number(), - error: sts.bytes(), - } -}) - -export const ArithmeticError: sts.Type = sts.closedEnum(() => { - return { - DivisionByZero: sts.unit(), - Overflow: sts.unit(), - Underflow: sts.unit(), - } -}) - -/** - * Events emitted by pallet-transporter. - */ -export const TransporterEvent: sts.Type = sts.closedEnum(() => { - return { - IncomingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferFailed: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - err: DispatchError, - }), - OutgoingTransferInitiated: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - OutgoingTransferSuccessful: sts.enumStruct({ - chainId: ChainId, - messageId: sts.tuple(() => [sts.bigint(), sts.bigint()]), - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const TransactionPaymentEvent: sts.Type = sts.closedEnum(() => { - return { - TransactionFeePaid: sts.enumStruct({ - who: AccountId32, - actualFee: sts.bigint(), - tip: sts.bigint(), - }), - } -}) - -/** - * `pallet-transaction-fees` events - */ -export const TransactionFeesEvent: sts.Type = sts.closedEnum(() => { - return { - BlockFees: sts.enumStruct({ - who: AccountId32, - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - BurnedBlockFees: sts.enumStruct({ - storage: sts.bigint(), - compute: sts.bigint(), - tips: sts.bigint(), - }), - } -}) - -/** - * Event for the System pallet. - */ -export const SystemEvent: sts.Type = sts.closedEnum(() => { - return { - CodeUpdated: sts.unit(), - ExtrinsicFailed: sts.enumStruct({ - dispatchError: DispatchError, - dispatchInfo: DispatchInfo, - }), - ExtrinsicSuccess: sts.enumStruct({ - dispatchInfo: DispatchInfo, - }), - KilledAccount: sts.enumStruct({ - account: AccountId32, - }), - NewAccount: sts.enumStruct({ - account: AccountId32, - }), - Remarked: sts.enumStruct({ - sender: AccountId32, - hash: H256, - }), - UpgradeAuthorized: sts.enumStruct({ - codeHash: H256, - checkVersion: sts.boolean(), - }), - } -}) - -export const DispatchInfo: sts.Type = sts.struct(() => { - return { - weight: Weight, - class: DispatchClass, - paysFee: Pays, - } -}) - -export const Pays: sts.Type = sts.closedEnum(() => { - return { - No: sts.unit(), - Yes: sts.unit(), - } -}) - -export const DispatchClass: sts.Type = sts.closedEnum(() => { - return { - Mandatory: sts.unit(), - Normal: sts.unit(), - Operational: sts.unit(), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const SudoEvent: sts.Type = sts.closedEnum(() => { - return { - KeyChanged: sts.enumStruct({ - old: sts.option(() => AccountId32), - new: AccountId32, - }), - KeyRemoved: sts.unit(), - Sudid: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - SudoAsDone: sts.enumStruct({ - sudoResult: sts.result(() => sts.unit(), () => DispatchError), - }), - } -}) - -/** - * Events type. - */ -export const SubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - FarmerVote: sts.enumStruct({ - publicKey: Public, - rewardAddress: AccountId32, - height: sts.number(), - parentHash: H256, - }), - SegmentHeaderStored: sts.enumStruct({ - segmentHeader: SegmentHeader, - }), - } -}) - -export const SegmentHeader: sts.Type = sts.closedEnum(() => { - return { - V0: sts.enumStruct({ - segmentIndex: SegmentIndex, - segmentCommitment: SegmentCommitment, - prevSegmentHeaderHash: sts.bytes(), - lastArchivedBlock: LastArchivedBlock, - }), - } -}) - -export const LastArchivedBlock: sts.Type = sts.struct(() => { - return { - number: sts.number(), - archivedProgress: ArchivedBlockProgress, - } -}) - -export const ArchivedBlockProgress: sts.Type = sts.closedEnum(() => { - return { - Complete: sts.unit(), - Partial: sts.number(), - } -}) - -export const SegmentCommitment = sts.bytes() - -export const SegmentIndex = sts.bigint() - -export const Public = sts.bytes() - -/** - * `pallet-rewards` events - */ -export const RewardsEvent: sts.Type = sts.closedEnum(() => { - return { - BlockReward: sts.enumStruct({ - blockAuthor: AccountId32, - reward: sts.bigint(), - }), - VoteReward: sts.enumStruct({ - voter: AccountId32, - reward: sts.bigint(), - }), - } -}) - -/** - * Events type. - */ -export const OffencesSubspaceEvent: sts.Type = sts.closedEnum(() => { - return { - Offence: sts.enumStruct({ - kind: sts.bytes(), - timeslot: sts.bytes(), - }), - } -}) - -/** - * `pallet-messenger` events - */ -export const MessengerEvent: sts.Type = sts.closedEnum(() => { - return { - ChannelClosed: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelInitiated: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - ChannelOpen: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - }), - InboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - InboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessage: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResponse: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - }), - OutboxMessageResult: sts.enumStruct({ - chainId: ChainId, - channelId: sts.bigint(), - nonce: sts.bigint(), - result: OutboxMessageResult, - }), - } -}) - -export const OutboxMessageResult = sts.result(() => sts.unit(), () => DispatchError) - -/** - * The `Event` enum of this pallet - */ -export const DomainsEvent: sts.Type = sts.closedEnum(() => { - return { - BundleStored: sts.enumStruct({ - domainId: DomainId, - bundleHash: H256, - bundleAuthor: sts.bigint(), - }), - DomainEpochCompleted: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - DomainInstantiated: sts.enumStruct({ - domainId: DomainId, - }), - DomainOperatorAllowListUpdated: sts.enumStruct({ - domainId: DomainId, - }), - DomainRuntimeCreated: sts.enumStruct({ - runtimeId: sts.number(), - runtimeType: RuntimeType, - }), - DomainRuntimeUpgradeScheduled: sts.enumStruct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }), - DomainRuntimeUpgraded: sts.enumStruct({ - runtimeId: sts.number(), - }), - ForceDomainEpochTransition: sts.enumStruct({ - domainId: DomainId, - completedEpochIndex: sts.number(), - }), - FraudProofProcessed: sts.enumStruct({ - domainId: DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }), - FundsUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - OperatorDeregistered: sts.enumStruct({ - operatorId: sts.bigint(), - }), - OperatorNominated: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - OperatorRegistered: sts.enumStruct({ - operatorId: sts.bigint(), - domainId: DomainId, - }), - OperatorRewarded: sts.enumStruct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }), - OperatorSlashed: sts.enumStruct({ - operatorId: sts.bigint(), - reason: SlashedReason, - }), - OperatorSwitchedDomain: sts.enumStruct({ - oldDomainId: DomainId, - newDomainId: DomainId, - }), - OperatorTaxCollected: sts.enumStruct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }), - OperatorUnlocked: sts.enumStruct({ - operatorId: sts.bigint(), - }), - PreferredOperator: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - StorageFeeDeposited: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - amount: sts.bigint(), - }), - WithdrewStake: sts.enumStruct({ - operatorId: sts.bigint(), - nominatorId: AccountId32, - }), - } -}) - -/** - * The `Event` enum of this pallet - */ -export const BalancesEvent: sts.Type = sts.closedEnum(() => { - return { - BalanceSet: sts.enumStruct({ - who: AccountId32, - free: sts.bigint(), - }), - Burned: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Deposit: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - DustLost: sts.enumStruct({ - account: AccountId32, - amount: sts.bigint(), - }), - Endowed: sts.enumStruct({ - account: AccountId32, - freeBalance: sts.bigint(), - }), - Frozen: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Issued: sts.enumStruct({ - amount: sts.bigint(), - }), - Locked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Minted: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Rescinded: sts.enumStruct({ - amount: sts.bigint(), - }), - ReserveRepatriated: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - destinationStatus: BalanceStatus, - }), - Reserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Restored: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Slashed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Suspended: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Thawed: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - TotalIssuanceForced: sts.enumStruct({ - old: sts.bigint(), - new: sts.bigint(), - }), - Transfer: sts.enumStruct({ - from: AccountId32, - to: AccountId32, - amount: sts.bigint(), - }), - Unlocked: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Unreserved: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - Upgraded: sts.enumStruct({ - who: AccountId32, - }), - Withdraw: sts.enumStruct({ - who: AccountId32, - amount: sts.bigint(), - }), - } -}) - -export const BalanceStatus: sts.Type = sts.closedEnum(() => { - return { - Free: sts.unit(), - Reserved: sts.unit(), - } -}) - -export const Phase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.number(), - Finalization: sts.unit(), - Initialization: sts.unit(), - } -}) - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const AdjustmentDirection: sts.Type = sts.closedEnum(() => { - return { - Decrease: sts.unit(), - Increase: sts.unit(), - } -}) - -export type AdjustmentDirection = AdjustmentDirection_Decrease | AdjustmentDirection_Increase - -export interface AdjustmentDirection_Decrease { - __kind: 'Decrease' -} - -export interface AdjustmentDirection_Increase { - __kind: 'Increase' -} - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/staking-squid/.gitignore b/indexers/staking-squid/.gitignore index 263e67075..b7db6c18c 100644 --- a/indexers/staking-squid/.gitignore +++ b/indexers/staking-squid/.gitignore @@ -8,4 +8,7 @@ # IDE files /.idea -/src/model/generated/ \ No newline at end of file +/db/ +/migrations/ +/src/model/ +/src/types/ \ No newline at end of file diff --git a/indexers/staking-squid/db/migrations/1724277861688-Data.js b/indexers/staking-squid/db/migrations/1724277861688-Data.js deleted file mode 100644 index b547380b0..000000000 --- a/indexers/staking-squid/db/migrations/1724277861688-Data.js +++ /dev/null @@ -1,269 +0,0 @@ -module.exports = class Data1724277861688 { - name = 'Data1724277861688' - - async up(db) { - await db.query(`CREATE TABLE "domain" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "name" text NOT NULL, "runtime_id" integer NOT NULL, "runtime" character varying(6) NOT NULL, "runtime_info" text NOT NULL, "completed_epoch" integer NOT NULL, "last_domain_block_number" integer NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "bundle_count" integer NOT NULL, "current_epoch_duration" numeric NOT NULL, "last_epoch_duration" numeric NOT NULL, "last6_epochs_duration" numeric NOT NULL, "last144_epoch_duration" numeric NOT NULL, "last1k_epoch_duration" numeric NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_27e3ec3ea0ae02c8c5bceab3ba9" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c1e90b3654ffe0a5544e502edb" ON "domain" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_c117722589b2b0f927aa16e25f" ON "domain" ("account_id") `) - await db.query(`CREATE INDEX "IDX_26a07113f90df161f919c7d5a6" ON "domain" ("name") `) - await db.query(`CREATE INDEX "IDX_36bfbe927612b8c0712c25f5a0" ON "domain" ("runtime_id") `) - await db.query(`CREATE INDEX "IDX_9f96c312a490b7a2a3d017721e" ON "domain" ("runtime") `) - await db.query(`CREATE INDEX "IDX_80867983eb3f6e204acfea4214" ON "domain" ("completed_epoch") `) - await db.query(`CREATE INDEX "IDX_e3a1b94f40001682587d9b0a3d" ON "domain" ("last_domain_block_number") `) - await db.query(`CREATE INDEX "IDX_6da91e378c5e17e2d467b592b0" ON "domain" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_35b49bec8ab1e3864de09a60d6" ON "domain" ("created_at") `) - await db.query(`CREATE INDEX "IDX_c3ac554ab7a2ed97d9a0af4083" ON "domain" ("updated_at") `) - await db.query(`CREATE TABLE "account" ("id" character varying NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_54115ee388cdb6d86bb4bf5b2ea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_2740156ea8742b8df1ad9d9774" ON "account" ("created_at") `) - await db.query(`CREATE INDEX "IDX_8bed31488e09ed64770378600b" ON "account" ("updated_at") `) - await db.query(`CREATE TABLE "operator" ("id" character varying NOT NULL, "sort_id" integer NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "signing_key" text NOT NULL, "minimum_nominator_stake" numeric NOT NULL, "nomination_tax" integer NOT NULL, "name" text NOT NULL, "description" text NOT NULL, "icon" text NOT NULL, "banner" text NOT NULL, "website" text NOT NULL, "website_verified" boolean NOT NULL, "email" text NOT NULL, "email_verified" boolean NOT NULL, "discord" text NOT NULL, "github" text NOT NULL, "twitter" text NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_epoch_rewards" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "raw_status" text NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "total_consensus_storage_fee" numeric NOT NULL, "total_domain_execution_fee" numeric NOT NULL, "total_burned_balance" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_rewards" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "bundle_count" integer NOT NULL, "status" character varying(12) NOT NULL, "pending_action" character varying(27) NOT NULL, "last_bundle_at" integer NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_8b950e1572745d9f69be7748ae8" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_ed3a1bcef6df98998f07a571a7" ON "operator" ("sort_id") `) - await db.query(`CREATE INDEX "IDX_91b197ab29ad85b5e616289ea0" ON "operator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_1c800426a1f738c1b202ff839f" ON "operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_51b6c3609906ff3cd25e39e1b2" ON "operator" ("signing_key") `) - await db.query(`CREATE INDEX "IDX_b383ed84b5891bd42be1d2eefd" ON "operator" ("name") `) - await db.query(`CREATE INDEX "IDX_df2e0bb74daa727ab46b3292b0" ON "operator" ("total_volume") `) - await db.query(`CREATE INDEX "IDX_c7fd0bf382a9832cf1db87827c" ON "operator" ("status") `) - await db.query(`CREATE INDEX "IDX_987b325e3ab4045266b612b032" ON "operator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_d6260ed02d20cf8231ebb742d6" ON "operator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d6d18ca05472785030a7a3963b" ON "operator" ("updated_at") `) - await db.query(`CREATE TABLE "domain_block" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "block_number" integer NOT NULL, "block_hash" text NOT NULL, "extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_80e382ab071c0035308c3bbe269" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4d9cd1246ac5e4eb3d87032a95" ON "domain_block" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_2c2a6c4f46c2585759e410aca8" ON "domain_block" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_f20da90e65426e4f794f848b81" ON "domain_block" ("block_number") `) - await db.query(`CREATE INDEX "IDX_cc1b0fc775b917ea6223b8602e" ON "domain_block" ("block_hash") `) - await db.query(`CREATE INDEX "IDX_eb1b10f35bffbce1185f4ac3f3" ON "domain_block" ("epoch") `) - await db.query(`CREATE INDEX "IDX_162c14bd69f437bed7e4f71bd8" ON "domain_block" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_43ace0c9890ef82e3eb90fe405" ON "domain_block" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_a884257019c36496b853d50d3c" ON "domain_block" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_64aebba834dae120aead88ff33" ON "domain_block" ("created_at") `) - await db.query(`CREATE INDEX "IDX_d53bbe077c18c36b918abc40ff" ON "domain_block" ("updated_at") `) - await db.query(`CREATE TABLE "domain_epoch" ("id" character varying NOT NULL, "epoch" integer NOT NULL, "domain_id" text NOT NULL, "block_number_start" integer NOT NULL, "block_number_end" integer NOT NULL, "block_count" integer NOT NULL, "timestamp_start" TIMESTAMP WITH TIME ZONE NOT NULL, "timestamp_end" TIMESTAMP WITH TIME ZONE NOT NULL, "epoch_duration" numeric NOT NULL, "consensus_block_number_start" integer NOT NULL, "consensus_block_number_end" integer NOT NULL, "consensus_block_hash_start" text NOT NULL, "consensus_block_hash_end" text NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7ffa6704fb3cfccc7127e6fdf36" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_333f88cae9e28d581d763fcd3a" ON "domain_epoch" ("epoch") `) - await db.query(`CREATE INDEX "IDX_49d0353f55bd117f11a6d6b10e" ON "domain_epoch" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_feacf6e5472e742480e182fead" ON "domain_epoch" ("block_number_start") `) - await db.query(`CREATE INDEX "IDX_d2800b9e4f55e70c2dbf50c180" ON "domain_epoch" ("block_number_end") `) - await db.query(`CREATE INDEX "IDX_4c04931070a2b4b5c86aa12503" ON "domain_epoch" ("timestamp_start") `) - await db.query(`CREATE INDEX "IDX_fef96292239cebf57a521d0264" ON "domain_epoch" ("timestamp_end") `) - await db.query(`CREATE INDEX "IDX_89e03f524980b405de261570bb" ON "domain_epoch" ("consensus_block_number_start") `) - await db.query(`CREATE INDEX "IDX_14aad4eb1f052ff1198ed69aa9" ON "domain_epoch" ("consensus_block_number_end") `) - await db.query(`CREATE INDEX "IDX_dd129bbbbffb90b197efdd59f0" ON "domain_epoch" ("consensus_block_hash_start") `) - await db.query(`CREATE INDEX "IDX_77df3788bfba37edba3a23da00" ON "domain_epoch" ("consensus_block_hash_end") `) - await db.query(`CREATE INDEX "IDX_d047d4eb28fd592bdfc1f398ae" ON "domain_epoch" ("created_at") `) - await db.query(`CREATE INDEX "IDX_bbc9922495360081a8c591b312" ON "domain_epoch" ("updated_at") `) - await db.query(`CREATE TABLE "bundle" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "domain_block_number" integer NOT NULL, "domain_block_hash" text NOT NULL, "domain_block_extrinsic_root" text NOT NULL, "epoch" integer NOT NULL, "consensus_block_number" integer NOT NULL, "consensus_block_hash" text NOT NULL, "total_transfers_in" numeric NOT NULL, "transfers_in_count" integer NOT NULL, "total_transfers_out" numeric NOT NULL, "transfers_out_count" integer NOT NULL, "total_rejected_transfers_claimed" numeric NOT NULL, "rejected_transfers_claimed_count" integer NOT NULL, "total_transfers_rejected" numeric NOT NULL, "transfers_rejected_count" integer NOT NULL, "total_volume" numeric NOT NULL, "consensus_storage_fee" numeric NOT NULL, "domain_execution_fee" numeric NOT NULL, "burned_balance" numeric NOT NULL, CONSTRAINT "PK_637e3f87e837d6532109c198dea" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_82b7b684e1b50da245f72d6020" ON "bundle" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0033c9f116ee25b5ebb8d24222" ON "bundle" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_704516bcbc02fe10ce28e8e262" ON "bundle" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_b5c951f317cc0451d9d3c21aaa" ON "bundle" ("domain_block_number") `) - await db.query(`CREATE INDEX "IDX_006e8a93183443a738f7c5968b" ON "bundle" ("epoch") `) - await db.query(`CREATE INDEX "IDX_5c848822e75fbe863d43231468" ON "bundle" ("consensus_block_number") `) - await db.query(`CREATE INDEX "IDX_33b73ddabaa5e322cff6ab15b1" ON "bundle" ("consensus_block_hash") `) - await db.query(`CREATE INDEX "IDX_e49c7ec4d50ca7652f97f57172" ON "bundle" ("total_volume") `) - await db.query(`CREATE TABLE "bundle_author" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "account_id" text NOT NULL, "operator_id" text NOT NULL, "bundle_id" text NOT NULL, "domain_block_id" text NOT NULL, "domain_epoch_id" text NOT NULL, "epoch" integer NOT NULL, CONSTRAINT "PK_54ba310ce65f841f8948c5f230c" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_46a6d0670b490fef23fd56406e" ON "bundle_author" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_e419d11bdca9f6dc30dbb54298" ON "bundle_author" ("account_id") `) - await db.query(`CREATE INDEX "IDX_11c48ad072b8a2f5911a48edf5" ON "bundle_author" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_3ebc9908db2f3e287a5cc279af" ON "bundle_author" ("bundle_id") `) - await db.query(`CREATE INDEX "IDX_912b97c9a90df101e29578a423" ON "bundle_author" ("domain_block_id") `) - await db.query(`CREATE INDEX "IDX_d4e6fbfc88663decb33b8240ad" ON "bundle_author" ("domain_epoch_id") `) - await db.query(`CREATE INDEX "IDX_5b758804adabfdb0f507591dfd" ON "bundle_author" ("epoch") `) - await db.query(`CREATE TABLE "nominator" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "known_shares" numeric NOT NULL, "known_storage_fee_deposit" numeric NOT NULL, "pending_amount" numeric NOT NULL, "pending_storage_fee_deposit" numeric NOT NULL, "pending_effective_domain_epoch" integer NOT NULL, "total_withdrawal_amounts" numeric NOT NULL, "total_storage_fee_refund" numeric NOT NULL, "unlock_at_confirmed_domain_block_number" integer array NOT NULL, "pending_shares" numeric NOT NULL, "pending_storage_fee_refund" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_estimated_withdrawals" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_deposits_count" integer NOT NULL, "total_withdrawals_count" integer NOT NULL, "current_total_stake" numeric NOT NULL, "current_storage_fee_deposit" numeric NOT NULL, "current_total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "accumulated_epoch_stake" numeric NOT NULL, "accumulated_epoch_storage_fee_deposit" numeric NOT NULL, "accumulated_epoch_shares" numeric NOT NULL, "active_epoch_count" integer NOT NULL, "status" character varying(8) NOT NULL, "pending_action" character varying(27) NOT NULL, "created_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_7489b7a79b066f2660eab25f60b" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_917636e6d1130ea9506eaeafef" ON "nominator" ("account_id") `) - await db.query(`CREATE INDEX "IDX_b017cafe03fa79059bd8164c4e" ON "nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_14374f281ccb6e72c55dab3c20" ON "nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_43aeeb4c46d83dd78aa564c1b1" ON "nominator" ("status") `) - await db.query(`CREATE INDEX "IDX_12baadf2609f7b262a9a760d6d" ON "nominator" ("pending_action") `) - await db.query(`CREATE INDEX "IDX_7093d62ba7e5a6387a686e607e" ON "nominator" ("created_at") `) - await db.query(`CREATE INDEX "IDX_9ebc942736e76bde99ee21452f" ON "nominator" ("updated_at") `) - await db.query(`CREATE TABLE "deposit" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "amount" numeric NOT NULL, "storage_fee_deposit" numeric NOT NULL, "total_amount" numeric NOT NULL, "total_withdrawn" numeric NOT NULL, "status" character varying(19) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "extrinsic_hash" text NOT NULL, "epoch_deposited_at" integer NOT NULL, "domain_block_number_deposited_at" integer NOT NULL, "created_at" integer NOT NULL, "staked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_6654b4be449dadfd9d03a324b61" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_9ced91570695137ec1d60c1a61" ON "deposit" ("account_id") `) - await db.query(`CREATE INDEX "IDX_8dc544cfa89fb544beea034396" ON "deposit" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_c2f2cfaa2b294c75d38a57e380" ON "deposit" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_b673efd4ec207b203e4d06abe9" ON "deposit" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_6f250bd43f2f631fcb2f589200" ON "deposit" ("status") `) - await db.query(`CREATE INDEX "IDX_a37222607a86476fa124313c51" ON "deposit" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_b1d1dadac59ff00a27b4ef18cf" ON "deposit" ("extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_09a8447db322b039b8a2bbf858" ON "deposit" ("epoch_deposited_at") `) - await db.query(`CREATE INDEX "IDX_8a397798592cd18d68388c4a58" ON "deposit" ("domain_block_number_deposited_at") `) - await db.query(`CREATE INDEX "IDX_11f6fba4dd0c1e03e2b61b1fd0" ON "deposit" ("created_at") `) - await db.query(`CREATE INDEX "IDX_e2d44319cdd3cfc595fac2ddd0" ON "deposit" ("staked_at") `) - await db.query(`CREATE INDEX "IDX_91527392d40d3066ddadda9804" ON "deposit" ("updated_at") `) - await db.query(`CREATE TABLE "withdrawal" ("id" character varying NOT NULL, "account_id" text NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "shares" numeric NOT NULL, "estimated_amount" numeric NOT NULL, "unlocked_amount" numeric NOT NULL, "unlocked_storage_fee" numeric NOT NULL, "total_amount" numeric NOT NULL, "status" character varying(16) NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "withdraw_extrinsic_hash" text NOT NULL, "unlock_extrinsic_hash" text NOT NULL, "epoch_withdrawal_requested_at" integer NOT NULL, "domain_block_number_withdrawal_requested_at" integer NOT NULL, "created_at" integer NOT NULL, "ready_at" integer NOT NULL, "unlocked_at" integer NOT NULL, "updated_at" integer NOT NULL, CONSTRAINT "PK_840e247aaad3fbd4e18129122a2" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_66c152572f8743fcd9ddecf2d2" ON "withdrawal" ("account_id") `) - await db.query(`CREATE INDEX "IDX_12de4d5556aa377a203cb5b1b2" ON "withdrawal" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_d5f5ce8abff91d6485c4f84e57" ON "withdrawal" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_09c9cf2ad9a4f3b674540dbfcf" ON "withdrawal" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_4028ed4e39f5c919fc3317882b" ON "withdrawal" ("status") `) - await db.query(`CREATE INDEX "IDX_e2749aaf8ba367458c360a7c73" ON "withdrawal" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_8fa0aebb91fd2aca95c4d80edb" ON "withdrawal" ("withdraw_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_6e92f3b6d03f580800c31d78ea" ON "withdrawal" ("unlock_extrinsic_hash") `) - await db.query(`CREATE INDEX "IDX_8016e5d392912ecc0a425cecec" ON "withdrawal" ("epoch_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_7207c1052c45aa41c118a01ed0" ON "withdrawal" ("domain_block_number_withdrawal_requested_at") `) - await db.query(`CREATE INDEX "IDX_51ee468e87a9f6eabde5bff0b2" ON "withdrawal" ("created_at") `) - await db.query(`CREATE INDEX "IDX_455defcfd4f47b6358358b77e7" ON "withdrawal" ("ready_at") `) - await db.query(`CREATE INDEX "IDX_803816d11e1df4712ef608af8f" ON "withdrawal" ("unlocked_at") `) - await db.query(`CREATE INDEX "IDX_1e01eb0b8dd1e8a22edc53859c" ON "withdrawal" ("updated_at") `) - await db.query(`CREATE TABLE "reward_event" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "amount" numeric NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, "block_number" integer NOT NULL, "extrinsic_hash" text NOT NULL, CONSTRAINT "PK_212058fe00a4e4ad6f433833992" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_c58ade91dd87782e5587dea498" ON "reward_event" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_df32138995e155bfae4999ec17" ON "reward_event" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_32c335d826e7606e7dec0bcd59" ON "reward_event" ("timestamp") `) - await db.query(`CREATE INDEX "IDX_dcefc6529930bf025676463725" ON "reward_event" ("block_number") `) - await db.query(`CREATE INDEX "IDX_53ac1d5bf31f15640e4d54820a" ON "reward_event" ("extrinsic_hash") `) - await db.query(`CREATE TABLE "stats" ("id" character varying NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "domains_count" integer NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c76e93dfef28ba9b6942f578ab1" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_0b3890ae3ba62ee77fe94af26e" ON "stats" ("block_number") `) - await db.query(`CREATE INDEX "IDX_ea4b2bcf5920a1b06f4454bb91" ON "stats" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_domain" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "active_operators_count" integer NOT NULL, "slashed_operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_0edbe67267dbe09a2a691517eee" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_3ac1b575a2dd3f64faedbde14b" ON "stats_per_domain" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_77118ccf015e661215115daaa5" ON "stats_per_domain" ("block_number") `) - await db.query(`CREATE INDEX "IDX_8eb7279e3beeab2964a533cd52" ON "stats_per_domain" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_operator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_tax_collected" numeric NOT NULL, "total_rewards_collected" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_8cff6fe09e3e5510f0c90e42cf5" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_4a4bff6af8198a2f145ecf637f" ON "stats_per_operator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_466db26acddfccae0a5d487d2c" ON "stats_per_operator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_5ff9cc7e82a620057ef84c3826" ON "stats_per_operator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_3260a5fceb17a3d817e5678d7f" ON "stats_per_operator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_nominator" ("id" character varying NOT NULL, "domain_id" text NOT NULL, "operator_id" text NOT NULL, "nominator_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_cbe18fadd4ac8162a3ea72ed7c0" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_1386cedecaa7459304ab08f3c9" ON "stats_per_nominator" ("domain_id") `) - await db.query(`CREATE INDEX "IDX_0cbe32c48b0b8ce4cdaca40e25" ON "stats_per_nominator" ("operator_id") `) - await db.query(`CREATE INDEX "IDX_f4eed0a147ec55fa63fee8cff8" ON "stats_per_nominator" ("nominator_id") `) - await db.query(`CREATE INDEX "IDX_b964a78d6565bfc5d4c2c298c1" ON "stats_per_nominator" ("block_number") `) - await db.query(`CREATE INDEX "IDX_4f0e392290ae255e10b0ff6500" ON "stats_per_nominator" ("timestamp") `) - await db.query(`CREATE TABLE "stats_per_account" ("id" character varying NOT NULL, "account_id" text NOT NULL, "block_number" integer NOT NULL, "total_staked" numeric NOT NULL, "total_deposits" numeric NOT NULL, "total_withdrawals" numeric NOT NULL, "total_shares" numeric NOT NULL, "current_share_price" numeric NOT NULL, "all_time_high_staked" numeric NOT NULL, "all_time_high_share_price" numeric NOT NULL, "operators_count" integer NOT NULL, "nominators_count" integer NOT NULL, "deposits_count" integer NOT NULL, "withdrawals_count" integer NOT NULL, "timestamp" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_c2ae964c132359bab5903ede72f" PRIMARY KEY ("id"))`) - await db.query(`CREATE INDEX "IDX_d520535ebd3dceb62332d2dbaa" ON "stats_per_account" ("account_id") `) - await db.query(`CREATE INDEX "IDX_6689c432a28949dd81e6b57671" ON "stats_per_account" ("block_number") `) - await db.query(`CREATE INDEX "IDX_1fdf05c8198889b75485e872bf" ON "stats_per_account" ("timestamp") `) - } - - async down(db) { - await db.query(`DROP TABLE "domain"`) - await db.query(`DROP INDEX "public"."IDX_c1e90b3654ffe0a5544e502edb"`) - await db.query(`DROP INDEX "public"."IDX_c117722589b2b0f927aa16e25f"`) - await db.query(`DROP INDEX "public"."IDX_26a07113f90df161f919c7d5a6"`) - await db.query(`DROP INDEX "public"."IDX_36bfbe927612b8c0712c25f5a0"`) - await db.query(`DROP INDEX "public"."IDX_9f96c312a490b7a2a3d017721e"`) - await db.query(`DROP INDEX "public"."IDX_80867983eb3f6e204acfea4214"`) - await db.query(`DROP INDEX "public"."IDX_e3a1b94f40001682587d9b0a3d"`) - await db.query(`DROP INDEX "public"."IDX_6da91e378c5e17e2d467b592b0"`) - await db.query(`DROP INDEX "public"."IDX_35b49bec8ab1e3864de09a60d6"`) - await db.query(`DROP INDEX "public"."IDX_c3ac554ab7a2ed97d9a0af4083"`) - await db.query(`DROP TABLE "account"`) - await db.query(`DROP INDEX "public"."IDX_2740156ea8742b8df1ad9d9774"`) - await db.query(`DROP INDEX "public"."IDX_8bed31488e09ed64770378600b"`) - await db.query(`DROP TABLE "operator"`) - await db.query(`DROP INDEX "public"."IDX_ed3a1bcef6df98998f07a571a7"`) - await db.query(`DROP INDEX "public"."IDX_91b197ab29ad85b5e616289ea0"`) - await db.query(`DROP INDEX "public"."IDX_1c800426a1f738c1b202ff839f"`) - await db.query(`DROP INDEX "public"."IDX_51b6c3609906ff3cd25e39e1b2"`) - await db.query(`DROP INDEX "public"."IDX_b383ed84b5891bd42be1d2eefd"`) - await db.query(`DROP INDEX "public"."IDX_df2e0bb74daa727ab46b3292b0"`) - await db.query(`DROP INDEX "public"."IDX_c7fd0bf382a9832cf1db87827c"`) - await db.query(`DROP INDEX "public"."IDX_987b325e3ab4045266b612b032"`) - await db.query(`DROP INDEX "public"."IDX_d6260ed02d20cf8231ebb742d6"`) - await db.query(`DROP INDEX "public"."IDX_d6d18ca05472785030a7a3963b"`) - await db.query(`DROP TABLE "domain_block"`) - await db.query(`DROP INDEX "public"."IDX_4d9cd1246ac5e4eb3d87032a95"`) - await db.query(`DROP INDEX "public"."IDX_2c2a6c4f46c2585759e410aca8"`) - await db.query(`DROP INDEX "public"."IDX_f20da90e65426e4f794f848b81"`) - await db.query(`DROP INDEX "public"."IDX_cc1b0fc775b917ea6223b8602e"`) - await db.query(`DROP INDEX "public"."IDX_eb1b10f35bffbce1185f4ac3f3"`) - await db.query(`DROP INDEX "public"."IDX_162c14bd69f437bed7e4f71bd8"`) - await db.query(`DROP INDEX "public"."IDX_43ace0c9890ef82e3eb90fe405"`) - await db.query(`DROP INDEX "public"."IDX_a884257019c36496b853d50d3c"`) - await db.query(`DROP INDEX "public"."IDX_64aebba834dae120aead88ff33"`) - await db.query(`DROP INDEX "public"."IDX_d53bbe077c18c36b918abc40ff"`) - await db.query(`DROP TABLE "domain_epoch"`) - await db.query(`DROP INDEX "public"."IDX_333f88cae9e28d581d763fcd3a"`) - await db.query(`DROP INDEX "public"."IDX_49d0353f55bd117f11a6d6b10e"`) - await db.query(`DROP INDEX "public"."IDX_feacf6e5472e742480e182fead"`) - await db.query(`DROP INDEX "public"."IDX_d2800b9e4f55e70c2dbf50c180"`) - await db.query(`DROP INDEX "public"."IDX_4c04931070a2b4b5c86aa12503"`) - await db.query(`DROP INDEX "public"."IDX_fef96292239cebf57a521d0264"`) - await db.query(`DROP INDEX "public"."IDX_89e03f524980b405de261570bb"`) - await db.query(`DROP INDEX "public"."IDX_14aad4eb1f052ff1198ed69aa9"`) - await db.query(`DROP INDEX "public"."IDX_dd129bbbbffb90b197efdd59f0"`) - await db.query(`DROP INDEX "public"."IDX_77df3788bfba37edba3a23da00"`) - await db.query(`DROP INDEX "public"."IDX_d047d4eb28fd592bdfc1f398ae"`) - await db.query(`DROP INDEX "public"."IDX_bbc9922495360081a8c591b312"`) - await db.query(`DROP TABLE "bundle"`) - await db.query(`DROP INDEX "public"."IDX_82b7b684e1b50da245f72d6020"`) - await db.query(`DROP INDEX "public"."IDX_0033c9f116ee25b5ebb8d24222"`) - await db.query(`DROP INDEX "public"."IDX_704516bcbc02fe10ce28e8e262"`) - await db.query(`DROP INDEX "public"."IDX_b5c951f317cc0451d9d3c21aaa"`) - await db.query(`DROP INDEX "public"."IDX_006e8a93183443a738f7c5968b"`) - await db.query(`DROP INDEX "public"."IDX_5c848822e75fbe863d43231468"`) - await db.query(`DROP INDEX "public"."IDX_33b73ddabaa5e322cff6ab15b1"`) - await db.query(`DROP INDEX "public"."IDX_e49c7ec4d50ca7652f97f57172"`) - await db.query(`DROP TABLE "bundle_author"`) - await db.query(`DROP INDEX "public"."IDX_46a6d0670b490fef23fd56406e"`) - await db.query(`DROP INDEX "public"."IDX_e419d11bdca9f6dc30dbb54298"`) - await db.query(`DROP INDEX "public"."IDX_11c48ad072b8a2f5911a48edf5"`) - await db.query(`DROP INDEX "public"."IDX_3ebc9908db2f3e287a5cc279af"`) - await db.query(`DROP INDEX "public"."IDX_912b97c9a90df101e29578a423"`) - await db.query(`DROP INDEX "public"."IDX_d4e6fbfc88663decb33b8240ad"`) - await db.query(`DROP INDEX "public"."IDX_5b758804adabfdb0f507591dfd"`) - await db.query(`DROP TABLE "nominator"`) - await db.query(`DROP INDEX "public"."IDX_917636e6d1130ea9506eaeafef"`) - await db.query(`DROP INDEX "public"."IDX_b017cafe03fa79059bd8164c4e"`) - await db.query(`DROP INDEX "public"."IDX_14374f281ccb6e72c55dab3c20"`) - await db.query(`DROP INDEX "public"."IDX_43aeeb4c46d83dd78aa564c1b1"`) - await db.query(`DROP INDEX "public"."IDX_12baadf2609f7b262a9a760d6d"`) - await db.query(`DROP INDEX "public"."IDX_7093d62ba7e5a6387a686e607e"`) - await db.query(`DROP INDEX "public"."IDX_9ebc942736e76bde99ee21452f"`) - await db.query(`DROP TABLE "deposit"`) - await db.query(`DROP INDEX "public"."IDX_9ced91570695137ec1d60c1a61"`) - await db.query(`DROP INDEX "public"."IDX_8dc544cfa89fb544beea034396"`) - await db.query(`DROP INDEX "public"."IDX_c2f2cfaa2b294c75d38a57e380"`) - await db.query(`DROP INDEX "public"."IDX_b673efd4ec207b203e4d06abe9"`) - await db.query(`DROP INDEX "public"."IDX_6f250bd43f2f631fcb2f589200"`) - await db.query(`DROP INDEX "public"."IDX_a37222607a86476fa124313c51"`) - await db.query(`DROP INDEX "public"."IDX_b1d1dadac59ff00a27b4ef18cf"`) - await db.query(`DROP INDEX "public"."IDX_09a8447db322b039b8a2bbf858"`) - await db.query(`DROP INDEX "public"."IDX_8a397798592cd18d68388c4a58"`) - await db.query(`DROP INDEX "public"."IDX_11f6fba4dd0c1e03e2b61b1fd0"`) - await db.query(`DROP INDEX "public"."IDX_e2d44319cdd3cfc595fac2ddd0"`) - await db.query(`DROP INDEX "public"."IDX_91527392d40d3066ddadda9804"`) - await db.query(`DROP TABLE "withdrawal"`) - await db.query(`DROP INDEX "public"."IDX_66c152572f8743fcd9ddecf2d2"`) - await db.query(`DROP INDEX "public"."IDX_12de4d5556aa377a203cb5b1b2"`) - await db.query(`DROP INDEX "public"."IDX_d5f5ce8abff91d6485c4f84e57"`) - await db.query(`DROP INDEX "public"."IDX_09c9cf2ad9a4f3b674540dbfcf"`) - await db.query(`DROP INDEX "public"."IDX_4028ed4e39f5c919fc3317882b"`) - await db.query(`DROP INDEX "public"."IDX_e2749aaf8ba367458c360a7c73"`) - await db.query(`DROP INDEX "public"."IDX_8fa0aebb91fd2aca95c4d80edb"`) - await db.query(`DROP INDEX "public"."IDX_6e92f3b6d03f580800c31d78ea"`) - await db.query(`DROP INDEX "public"."IDX_8016e5d392912ecc0a425cecec"`) - await db.query(`DROP INDEX "public"."IDX_7207c1052c45aa41c118a01ed0"`) - await db.query(`DROP INDEX "public"."IDX_51ee468e87a9f6eabde5bff0b2"`) - await db.query(`DROP INDEX "public"."IDX_455defcfd4f47b6358358b77e7"`) - await db.query(`DROP INDEX "public"."IDX_803816d11e1df4712ef608af8f"`) - await db.query(`DROP INDEX "public"."IDX_1e01eb0b8dd1e8a22edc53859c"`) - await db.query(`DROP TABLE "reward_event"`) - await db.query(`DROP INDEX "public"."IDX_c58ade91dd87782e5587dea498"`) - await db.query(`DROP INDEX "public"."IDX_df32138995e155bfae4999ec17"`) - await db.query(`DROP INDEX "public"."IDX_32c335d826e7606e7dec0bcd59"`) - await db.query(`DROP INDEX "public"."IDX_dcefc6529930bf025676463725"`) - await db.query(`DROP INDEX "public"."IDX_53ac1d5bf31f15640e4d54820a"`) - await db.query(`DROP TABLE "stats"`) - await db.query(`DROP INDEX "public"."IDX_0b3890ae3ba62ee77fe94af26e"`) - await db.query(`DROP INDEX "public"."IDX_ea4b2bcf5920a1b06f4454bb91"`) - await db.query(`DROP TABLE "stats_per_domain"`) - await db.query(`DROP INDEX "public"."IDX_3ac1b575a2dd3f64faedbde14b"`) - await db.query(`DROP INDEX "public"."IDX_77118ccf015e661215115daaa5"`) - await db.query(`DROP INDEX "public"."IDX_8eb7279e3beeab2964a533cd52"`) - await db.query(`DROP TABLE "stats_per_operator"`) - await db.query(`DROP INDEX "public"."IDX_4a4bff6af8198a2f145ecf637f"`) - await db.query(`DROP INDEX "public"."IDX_466db26acddfccae0a5d487d2c"`) - await db.query(`DROP INDEX "public"."IDX_5ff9cc7e82a620057ef84c3826"`) - await db.query(`DROP INDEX "public"."IDX_3260a5fceb17a3d817e5678d7f"`) - await db.query(`DROP TABLE "stats_per_nominator"`) - await db.query(`DROP INDEX "public"."IDX_1386cedecaa7459304ab08f3c9"`) - await db.query(`DROP INDEX "public"."IDX_0cbe32c48b0b8ce4cdaca40e25"`) - await db.query(`DROP INDEX "public"."IDX_f4eed0a147ec55fa63fee8cff8"`) - await db.query(`DROP INDEX "public"."IDX_b964a78d6565bfc5d4c2c298c1"`) - await db.query(`DROP INDEX "public"."IDX_4f0e392290ae255e10b0ff6500"`) - await db.query(`DROP TABLE "stats_per_account"`) - await db.query(`DROP INDEX "public"."IDX_d520535ebd3dceb62332d2dbaa"`) - await db.query(`DROP INDEX "public"."IDX_6689c432a28949dd81e6b57671"`) - await db.query(`DROP INDEX "public"."IDX_1fdf05c8198889b75485e872bf"`) - } -} diff --git a/indexers/staking-squid/src/model/generated/index.ts b/indexers/staking-squid/src/model/generated/index.ts deleted file mode 100644 index 671bf8a26..000000000 --- a/indexers/staking-squid/src/model/generated/index.ts +++ /dev/null @@ -1,23 +0,0 @@ -export * from "./domain.model" -export * from "./_domainRuntime" -export * from "./account.model" -export * from "./operator.model" -export * from "./_operatorStatus" -export * from "./_operatorPendingAction" -export * from "./domainBlock.model" -export * from "./domainEpoch.model" -export * from "./bundle.model" -export * from "./bundleAuthor.model" -export * from "./nominator.model" -export * from "./_nominatorStatus" -export * from "./_nominatorPendingAction" -export * from "./deposit.model" -export * from "./_depositStatus" -export * from "./withdrawal.model" -export * from "./_withdrawalStatus" -export * from "./rewardEvent.model" -export * from "./stats.model" -export * from "./statsPerDomain.model" -export * from "./statsPerOperator.model" -export * from "./statsPerNominator.model" -export * from "./statsPerAccount.model" diff --git a/indexers/staking-squid/src/model/generated/marshal.ts b/indexers/staking-squid/src/model/generated/marshal.ts deleted file mode 100644 index 2cf1c3a8e..000000000 --- a/indexers/staking-squid/src/model/generated/marshal.ts +++ /dev/null @@ -1,149 +0,0 @@ -import assert from 'assert' - - -export interface Marshal { - fromJSON(value: unknown): T - toJSON(value: T): S -} - - -export const string: Marshal = { - fromJSON(value: unknown): string { - assert(typeof value === 'string', 'invalid String') - return value - }, - toJSON(value) { - return value - } -} - - -export const id = string - - -export const int: Marshal = { - fromJSON(value: unknown): number { - assert(Number.isInteger(value), 'invalid Int') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const float: Marshal = { - fromJSON(value: unknown): number { - assert(typeof value === 'number', 'invalid Float') - return value as number - }, - toJSON(value) { - return value - } -} - - -export const boolean: Marshal = { - fromJSON(value: unknown): boolean { - assert(typeof value === 'boolean', 'invalid Boolean') - return value - }, - toJSON(value: boolean): boolean { - return value - } -} - - -export const bigint: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigInt') - return BigInt(value) - }, - toJSON(value: bigint): string { - return value.toString() - } -} - - -export const bigdecimal: Marshal = { - fromJSON(value: unknown): bigint { - assert(typeof value === 'string', 'invalid BigDecimal') - return decimal.BigDecimal(value) - }, - toJSON(value: any): string { - return value.toString() - } -} - - -// credit - https://github.com/Urigo/graphql-scalars/blob/91b4ea8df891be8af7904cf84751930cc0c6613d/src/scalars/iso-date/validator.ts#L122 -const RFC_3339_REGEX = - /^(\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60))(\.\d{1,})?([Z])$/ - - -function isIsoDateTimeString(s: string): boolean { - return RFC_3339_REGEX.test(s) -} - - -export const datetime: Marshal = { - fromJSON(value: unknown): Date { - assert(typeof value === 'string', 'invalid DateTime') - assert(isIsoDateTimeString(value), 'invalid DateTime') - return new Date(value) - }, - toJSON(value: Date): string { - return value.toISOString() - } -} - - -export const bytes: Marshal = { - fromJSON(value: unknown): Buffer { - assert(typeof value === 'string', 'invalid Bytes') - assert(value.length % 2 === 0, 'invalid Bytes') - assert(/^0x[0-9a-f]+$/i.test(value), 'invalid Bytes') - return Buffer.from(value.slice(2), 'hex') - }, - toJSON(value: Uint8Array): string { - if (Buffer.isBuffer(value)) { - return '0x' + value.toString('hex') - } else { - return '0x' + Buffer.from(value.buffer, value.byteOffset, value.byteLength).toString('hex') - } - } -} - - -export function fromList(list: unknown, f: (val: unknown) => T): T[] { - assert(Array.isArray(list)) - return list.map((val) => f(val)) -} - - -export function nonNull(val: T | undefined | null): T { - assert(val != null, 'non-nullable value is null') - return val -} - - -export function enumFromJson(json: unknown, enumObject: E): E[keyof E] { - assert(typeof json == 'string', 'invalid enum value') - let val = (enumObject as any)[json] - assert(typeof val == 'string', `invalid enum value`) - return val as any -} - - -const decimal = { - get BigDecimal(): any { - throw new Error('Package `@subsquid/big-decimal` is not installed') - } -} - - -try { - Object.defineProperty(decimal, "BigDecimal", { - value: require('@subsquid/big-decimal').BigDecimal - }) -} catch (e) {} diff --git a/indexers/staking-squid/src/model/index.ts b/indexers/staking-squid/src/model/index.ts deleted file mode 100644 index 99735f641..000000000 --- a/indexers/staking-squid/src/model/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './generated' diff --git a/indexers/staking-squid/src/types/calls.ts b/indexers/staking-squid/src/types/calls.ts deleted file mode 100644 index bcb406fc7..000000000 --- a/indexers/staking-squid/src/types/calls.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/calls' diff --git a/indexers/staking-squid/src/types/constants.ts b/indexers/staking-squid/src/types/constants.ts deleted file mode 100644 index 20496425d..000000000 --- a/indexers/staking-squid/src/types/constants.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/constants' diff --git a/indexers/staking-squid/src/types/domains/calls.ts b/indexers/staking-squid/src/types/domains/calls.ts deleted file mode 100644 index 4195fdca8..000000000 --- a/indexers/staking-squid/src/types/domains/calls.ts +++ /dev/null @@ -1,372 +0,0 @@ -import {sts, Block, Bytes, Option, Result, CallType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const submitBundle = { - name: 'Domains.submit_bundle', - /** - * See [`Pallet::submit_bundle`]. - */ - v0: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v0.Bundle, - }) - ), - /** - * See [`Pallet::submit_bundle`]. - */ - v1: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v1.Bundle, - }) - ), - v5: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v5.Bundle, - }) - ), - v6: new CallType( - 'Domains.submit_bundle', - sts.struct({ - opaqueBundle: v6.Bundle, - }) - ), -} - -export const submitFraudProof = { - name: 'Domains.submit_fraud_proof', - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v0: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v0.FraudProof, - }) - ), - /** - * See [`Pallet::submit_fraud_proof`]. - */ - v1: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v1.FraudProof, - }) - ), - v5: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v5.FraudProof, - }) - ), - v6: new CallType( - 'Domains.submit_fraud_proof', - sts.struct({ - fraudProof: v6.FraudProof, - }) - ), -} - -export const registerDomainRuntime = { - name: 'Domains.register_domain_runtime', - /** - * See [`Pallet::register_domain_runtime`]. - */ - v0: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v0.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), - v5: new CallType( - 'Domains.register_domain_runtime', - sts.struct({ - runtimeName: sts.string(), - runtimeType: v5.RuntimeType, - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const upgradeDomainRuntime = { - name: 'Domains.upgrade_domain_runtime', - /** - * See [`Pallet::upgrade_domain_runtime`]. - */ - v0: new CallType( - 'Domains.upgrade_domain_runtime', - sts.struct({ - runtimeId: sts.number(), - rawGenesisStorage: sts.bytes(), - }) - ), -} - -export const registerOperator = { - name: 'Domains.register_operator', - /** - * See [`Pallet::register_operator`]. - */ - v0: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v0.DomainId, - amount: sts.bigint(), - config: v0.OperatorConfig, - }) - ), - v5: new CallType( - 'Domains.register_operator', - sts.struct({ - domainId: v5.DomainId, - amount: sts.bigint(), - config: v5.OperatorConfig, - signingKeyProofOfOwnership: sts.bytes(), - }) - ), -} - -export const nominateOperator = { - name: 'Domains.nominate_operator', - /** - * See [`Pallet::nominate_operator`]. - */ - v0: new CallType( - 'Domains.nominate_operator', - sts.struct({ - operatorId: sts.bigint(), - amount: sts.bigint(), - }) - ), -} - -export const instantiateDomain = { - name: 'Domains.instantiate_domain', - /** - * See [`Pallet::instantiate_domain`]. - */ - v0: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v0.DomainConfig, - }) - ), - /** - * See [`Pallet::instantiate_domain`]. - */ - v1: new CallType( - 'Domains.instantiate_domain', - sts.struct({ - domainConfig: v1.DomainConfig, - }) - ), -} - -export const switchDomain = { - name: 'Domains.switch_domain', - /** - * See [`Pallet::switch_domain`]. - */ - v0: new CallType( - 'Domains.switch_domain', - sts.struct({ - operatorId: sts.bigint(), - newDomainId: v0.DomainId, - }) - ), -} - -export const deregisterOperator = { - name: 'Domains.deregister_operator', - /** - * See [`Pallet::deregister_operator`]. - */ - v0: new CallType( - 'Domains.deregister_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrawStake = { - name: 'Domains.withdraw_stake', - /** - * See [`Pallet::withdraw_stake`]. - */ - v0: new CallType( - 'Domains.withdraw_stake', - sts.struct({ - operatorId: sts.bigint(), - shares: sts.bigint(), - }) - ), -} - -export const unlockFunds = { - name: 'Domains.unlock_funds', - /** - * See [`Pallet::unlock_funds`]. - */ - v0: new CallType( - 'Domains.unlock_funds', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const unlockOperator = { - name: 'Domains.unlock_operator', - /** - * See [`Pallet::unlock_operator`]. - */ - v0: new CallType( - 'Domains.unlock_operator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const updateDomainOperatorAllowList = { - name: 'Domains.update_domain_operator_allow_list', - /** - * See [`Pallet::update_domain_operator_allow_list`]. - */ - v0: new CallType( - 'Domains.update_domain_operator_allow_list', - sts.struct({ - domainId: v0.DomainId, - operatorAllowList: v0.OperatorAllowList, - }) - ), -} - -export const forceStakingEpochTransition = { - name: 'Domains.force_staking_epoch_transition', - /** - * See [`Pallet::force_staking_epoch_transition`]. - */ - v0: new CallType( - 'Domains.force_staking_epoch_transition', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const unlockNominator = { - name: 'Domains.unlock_nominator', - /** - * Unlocks the nominator under given operator given the unlocking period is complete. - * A nominator can initiate their unlock given operator is already deregistered. - */ - v5: new CallType( - 'Domains.unlock_nominator', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const setPermissionedActionAllowedBy = { - name: 'Domains.set_permissioned_action_allowed_by', - /** - * Update permissioned action allowed by storage by Sudo. - */ - v5: new CallType( - 'Domains.set_permissioned_action_allowed_by', - sts.struct({ - permissionedActionAllowedBy: v5.PermissionedActionAllowedBy, - }) - ), -} - -export const sendDomainSudoCall = { - name: 'Domains.send_domain_sudo_call', - /** - * Submit a domain sudo call. - */ - v6: new CallType( - 'Domains.send_domain_sudo_call', - sts.struct({ - domainId: v6.DomainId, - call: sts.bytes(), - }) - ), -} - -export const freezeDomain = { - name: 'Domains.freeze_domain', - /** - * Freezes a given domain. - * A frozen domain does not accept new bundles but accepts fraud proofs. - */ - v6: new CallType( - 'Domains.freeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const unfreezeDomain = { - name: 'Domains.unfreeze_domain', - /** - * Unfreezes a frozen domain. - */ - v6: new CallType( - 'Domains.unfreeze_domain', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const pruneDomainExecutionReceipt = { - name: 'Domains.prune_domain_execution_receipt', - /** - * Prunes a given execution receipt for given frozen domain. - * This call assumes the execution receipt to be bad and implicitly trusts Sudo - * to do necessary validation of the ER before dispatching this call. - */ - v6: new CallType( - 'Domains.prune_domain_execution_receipt', - sts.struct({ - domainId: v6.DomainId, - badReceiptHash: v6.H256, - }) - ), -} - -export const transferTreasuryFunds = { - name: 'Domains.transfer_treasury_funds', - /** - * Transfer funds from treasury to given account - */ - v6: new CallType( - 'Domains.transfer_treasury_funds', - sts.struct({ - accountId: v6.AccountId32, - balance: sts.bigint(), - }) - ), -} - -export const submitReceipt = { - name: 'Domains.submit_receipt', - v6: new CallType( - 'Domains.submit_receipt', - sts.struct({ - singletonReceipt: v6.SealedSingletonReceipt, - }) - ), -} diff --git a/indexers/staking-squid/src/types/domains/constants.ts b/indexers/staking-squid/src/types/domains/constants.ts deleted file mode 100644 index a26b47666..000000000 --- a/indexers/staking-squid/src/types/domains/constants.ts +++ /dev/null @@ -1,213 +0,0 @@ -import {sts, Block, Bytes, Option, Result, ConstantType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' - -export const confirmationDepthK = { - /** - * Same with `pallet_subspace::Config::ConfirmationDepthK`. - */ - v0: new ConstantType( - 'Domains.ConfirmationDepthK', - sts.number() - ), -} - -export const domainRuntimeUpgradeDelay = { - /** - * Delay before a domain runtime is upgraded. - */ - v0: new ConstantType( - 'Domains.DomainRuntimeUpgradeDelay', - sts.number() - ), -} - -export const blockTreePruningDepth = { - /** - * The block tree pruning depth. - */ - v0: new ConstantType( - 'Domains.BlockTreePruningDepth', - sts.number() - ), -} - -export const maxDomainBlockSize = { - /** - * The maximum block size limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockSize', - sts.number() - ), -} - -export const maxDomainBlockWeight = { - /** - * The maximum block weight limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainBlockWeight', - v0.Weight - ), -} - -export const maxBundlesPerBlock = { - /** - * The maximum bundle per block limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxBundlesPerBlock', - sts.number() - ), -} - -export const maxDomainNameLength = { - /** - * The maximum domain name length limit for all domain. - */ - v0: new ConstantType( - 'Domains.MaxDomainNameLength', - sts.number() - ), -} - -export const domainInstantiationDeposit = { - /** - * The amount of fund to be locked up for the domain instance creator. - */ - v0: new ConstantType( - 'Domains.DomainInstantiationDeposit', - sts.bigint() - ), -} - -export const initialDomainTxRange = { - /** - * Initial domain tx range value. - */ - v0: new ConstantType( - 'Domains.InitialDomainTxRange', - sts.bigint() - ), -} - -export const domainTxRangeAdjustmentInterval = { - /** - * Domain tx range is adjusted after every DomainTxRangeAdjustmentInterval blocks. - */ - v0: new ConstantType( - 'Domains.DomainTxRangeAdjustmentInterval', - sts.bigint() - ), -} - -export const minOperatorStake = { - /** - * Minimum operator stake required to become operator of a domain. - */ - v0: new ConstantType( - 'Domains.MinOperatorStake', - sts.bigint() - ), -} - -export const minNominatorStake = { - /** - * Minimum nominator stake required to nominate and operator. - */ - v0: new ConstantType( - 'Domains.MinNominatorStake', - sts.bigint() - ), -} - -export const stakeWithdrawalLockingPeriod = { - /** - * Minimum number of blocks after which any finalized withdrawals are released to nominators. - */ - v0: new ConstantType( - 'Domains.StakeWithdrawalLockingPeriod', - sts.number() - ), -} - -export const stakeEpochDuration = { - /** - * Domain epoch transition interval - */ - v0: new ConstantType( - 'Domains.StakeEpochDuration', - sts.number() - ), -} - -export const treasuryAccount = { - /** - * Treasury account. - */ - v0: new ConstantType( - 'Domains.TreasuryAccount', - v0.AccountId32 - ), -} - -export const maxPendingStakingOperation = { - /** - * The maximum number of pending staking operation that can perform upon epoch transition. - */ - v0: new ConstantType( - 'Domains.MaxPendingStakingOperation', - sts.number() - ), -} - -export const maxNominators = { - /** - * The maximum number of nominators for given operator. - */ - v0: new ConstantType( - 'Domains.MaxNominators', - sts.number() - ), -} - -export const sudoId = { - /** - * The sudo account id - */ - v0: new ConstantType( - 'Domains.SudoId', - v0.AccountId32 - ), -} - -export const palletId = { - /** - * The pallet-domains's pallet id. - */ - v1: new ConstantType( - 'Domains.PalletId', - v1.PalletId - ), -} - -export const consensusSlotProbability = { - /** - * Consensus chain slot probability. - */ - v3: new ConstantType( - 'Domains.ConsensusSlotProbability', - sts.tuple(() => [sts.bigint(), sts.bigint()]) - ), -} - -export const bundleLongevity = { - /** - * How many block a bundle should still consider as valid after produced - */ - v3: new ConstantType( - 'Domains.BundleLongevity', - sts.number() - ), -} diff --git a/indexers/staking-squid/src/types/domains/events.ts b/indexers/staking-squid/src/types/domains/events.ts deleted file mode 100644 index b75e07ce6..000000000 --- a/indexers/staking-squid/src/types/domains/events.ts +++ /dev/null @@ -1,325 +0,0 @@ -import {sts, Block, Bytes, Option, Result, EventType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const bundleStored = { - name: 'Domains.BundleStored', - /** - * A domain bundle was included. - */ - v0: new EventType( - 'Domains.BundleStored', - sts.struct({ - domainId: v0.DomainId, - bundleHash: v0.H256, - bundleAuthor: sts.bigint(), - }) - ), -} - -export const domainRuntimeCreated = { - name: 'Domains.DomainRuntimeCreated', - v0: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v0.RuntimeType, - }) - ), - v5: new EventType( - 'Domains.DomainRuntimeCreated', - sts.struct({ - runtimeId: sts.number(), - runtimeType: v5.RuntimeType, - }) - ), -} - -export const domainRuntimeUpgradeScheduled = { - name: 'Domains.DomainRuntimeUpgradeScheduled', - v0: new EventType( - 'Domains.DomainRuntimeUpgradeScheduled', - sts.struct({ - runtimeId: sts.number(), - scheduledAt: sts.number(), - }) - ), -} - -export const domainRuntimeUpgraded = { - name: 'Domains.DomainRuntimeUpgraded', - v0: new EventType( - 'Domains.DomainRuntimeUpgraded', - sts.struct({ - runtimeId: sts.number(), - }) - ), -} - -export const operatorRegistered = { - name: 'Domains.OperatorRegistered', - v0: new EventType( - 'Domains.OperatorRegistered', - sts.struct({ - operatorId: sts.bigint(), - domainId: v0.DomainId, - }) - ), -} - -export const operatorNominated = { - name: 'Domains.OperatorNominated', - v0: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), - v6: new EventType( - 'Domains.OperatorNominated', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const domainInstantiated = { - name: 'Domains.DomainInstantiated', - v0: new EventType( - 'Domains.DomainInstantiated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSwitchedDomain = { - name: 'Domains.OperatorSwitchedDomain', - v0: new EventType( - 'Domains.OperatorSwitchedDomain', - sts.struct({ - oldDomainId: v0.DomainId, - newDomainId: v0.DomainId, - }) - ), -} - -export const operatorDeregistered = { - name: 'Domains.OperatorDeregistered', - v0: new EventType( - 'Domains.OperatorDeregistered', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const operatorUnlocked = { - name: 'Domains.OperatorUnlocked', - v0: new EventType( - 'Domains.OperatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - }) - ), -} - -export const withdrewStake = { - name: 'Domains.WithdrewStake', - v0: new EventType( - 'Domains.WithdrewStake', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const fundsUnlocked = { - name: 'Domains.FundsUnlocked', - v0: new EventType( - 'Domains.FundsUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const preferredOperator = { - name: 'Domains.PreferredOperator', - v0: new EventType( - 'Domains.PreferredOperator', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v0.AccountId32, - }) - ), -} - -export const operatorRewarded = { - name: 'Domains.OperatorRewarded', - v0: new EventType( - 'Domains.OperatorRewarded', - sts.struct({ - operatorId: sts.bigint(), - reward: sts.bigint(), - }) - ), -} - -export const operatorTaxCollected = { - name: 'Domains.OperatorTaxCollected', - v0: new EventType( - 'Domains.OperatorTaxCollected', - sts.struct({ - operatorId: sts.bigint(), - tax: sts.bigint(), - }) - ), -} - -export const domainEpochCompleted = { - name: 'Domains.DomainEpochCompleted', - v0: new EventType( - 'Domains.DomainEpochCompleted', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const forceDomainEpochTransition = { - name: 'Domains.ForceDomainEpochTransition', - v0: new EventType( - 'Domains.ForceDomainEpochTransition', - sts.struct({ - domainId: v0.DomainId, - completedEpochIndex: sts.number(), - }) - ), -} - -export const fraudProofProcessed = { - name: 'Domains.FraudProofProcessed', - v0: new EventType( - 'Domains.FraudProofProcessed', - sts.struct({ - domainId: v0.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} - -export const domainOperatorAllowListUpdated = { - name: 'Domains.DomainOperatorAllowListUpdated', - v0: new EventType( - 'Domains.DomainOperatorAllowListUpdated', - sts.struct({ - domainId: v0.DomainId, - }) - ), -} - -export const operatorSlashed = { - name: 'Domains.OperatorSlashed', - v0: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v0.SlashedReason, - }) - ), - v5: new EventType( - 'Domains.OperatorSlashed', - sts.struct({ - operatorId: sts.bigint(), - reason: v5.SlashedReason, - }) - ), -} - -export const storageFeeDeposited = { - name: 'Domains.StorageFeeDeposited', - v1: new EventType( - 'Domains.StorageFeeDeposited', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v1.AccountId32, - amount: sts.bigint(), - }) - ), -} - -export const nominatedStakedUnlocked = { - name: 'Domains.NominatedStakedUnlocked', - v6: new EventType( - 'Domains.NominatedStakedUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - unlockedAmount: sts.bigint(), - }) - ), -} - -export const storageFeeUnlocked = { - name: 'Domains.StorageFeeUnlocked', - v6: new EventType( - 'Domains.StorageFeeUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - storageFee: sts.bigint(), - }) - ), -} - -export const nominatorUnlocked = { - name: 'Domains.NominatorUnlocked', - v6: new EventType( - 'Domains.NominatorUnlocked', - sts.struct({ - operatorId: sts.bigint(), - nominatorId: v6.AccountId32, - }) - ), -} - -export const domainFrozen = { - name: 'Domains.DomainFrozen', - v6: new EventType( - 'Domains.DomainFrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const domainUnfrozen = { - name: 'Domains.DomainUnfrozen', - v6: new EventType( - 'Domains.DomainUnfrozen', - sts.struct({ - domainId: v6.DomainId, - }) - ), -} - -export const prunedExecutionReceipt = { - name: 'Domains.PrunedExecutionReceipt', - v6: new EventType( - 'Domains.PrunedExecutionReceipt', - sts.struct({ - domainId: v6.DomainId, - newHeadReceiptNumber: sts.option(() => sts.number()), - }) - ), -} diff --git a/indexers/staking-squid/src/types/domains/storage.ts b/indexers/staking-squid/src/types/domains/storage.ts deleted file mode 100644 index 115361b07..000000000 --- a/indexers/staking-squid/src/types/domains/storage.ts +++ /dev/null @@ -1,1362 +0,0 @@ -import {sts, Block, Bytes, Option, Result, StorageType, RuntimeCtx} from '../support' -import * as v0 from '../v0' -import * as v1 from '../v1' -import * as v3 from '../v3' -import * as v5 from '../v5' -import * as v6 from '../v6' - -export const successfulBundles = { - /** - * Bundles submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulBundles', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulBundlesV0, -} - -/** - * Bundles submitted successfully in current block. - */ -export interface SuccessfulBundlesV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const successfulFraudProofs = { - /** - * Fraud proofs submitted successfully in current block. - */ - v0: new StorageType('Domains.SuccessfulFraudProofs', 'Default', [v0.DomainId], sts.array(() => v0.H256)) as SuccessfulFraudProofsV0, -} - -/** - * Fraud proofs submitted successfully in current block. - */ -export interface SuccessfulFraudProofsV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.H256[] - get(block: Block, key: v0.DomainId): Promise<(v0.H256[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.H256[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.H256[] | undefined)][]> -} - -export const nextRuntimeId = { - /** - * Stores the next runtime id. - */ - v0: new StorageType('Domains.NextRuntimeId', 'Default', [], sts.number()) as NextRuntimeIdV0, -} - -/** - * Stores the next runtime id. - */ -export interface NextRuntimeIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block): Promise<(number | undefined)> -} - -export const nextEvmChainId = { - /** - * Stores the next evm chain id. - */ - v0: new StorageType('Domains.NextEVMChainId', 'Default', [], sts.bigint()) as NextEvmChainIdV0, -} - -/** - * Stores the next evm chain id. - */ -export interface NextEvmChainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const runtimeRegistry = { - v0: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v0.RuntimeObject) as RuntimeRegistryV0, - v5: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v5.RuntimeObject) as RuntimeRegistryV5, - v6: new StorageType('Domains.RuntimeRegistry', 'Optional', [sts.number()], v6.RuntimeObject) as RuntimeRegistryV6, -} - -export interface RuntimeRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v0.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v0.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v0.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v5.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v5.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v5.RuntimeObject | undefined)][]> -} - -export interface RuntimeRegistryV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: number): Promise<(v6.RuntimeObject | undefined)> - getMany(block: Block, keys: number[]): Promise<(v6.RuntimeObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: (v6.RuntimeObject | undefined)][]> -} - -export const scheduledRuntimeUpgrades = { - v0: new StorageType('Domains.ScheduledRuntimeUpgrades', 'Optional', [sts.number(), sts.number()], v0.ScheduledRuntimeUpgrade) as ScheduledRuntimeUpgradesV0, -} - -export interface ScheduledRuntimeUpgradesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: number, key2: number): Promise<(v0.ScheduledRuntimeUpgrade | undefined)> - getMany(block: Block, keys: [number, number][]): Promise<(v0.ScheduledRuntimeUpgrade | undefined)[]> - getKeys(block: Block): Promise<[number, number][]> - getKeys(block: Block, key1: number): Promise<[number, number][]> - getKeys(block: Block, key1: number, key2: number): Promise<[number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[number, number][]> - getPairs(block: Block): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairs(block: Block, key1: number, key2: number): Promise<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: number, key2: number): AsyncIterable<[k: [number, number], v: (v0.ScheduledRuntimeUpgrade | undefined)][]> -} - -export const nextOperatorId = { - v0: new StorageType('Domains.NextOperatorId', 'Default', [], sts.bigint()) as NextOperatorIdV0, -} - -export interface NextOperatorIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const operatorIdOwner = { - v0: new StorageType('Domains.OperatorIdOwner', 'Optional', [sts.bigint()], v0.AccountId32) as OperatorIdOwnerV0, -} - -export interface OperatorIdOwnerV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.AccountId32 | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.AccountId32 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.AccountId32 | undefined)][]> -} - -export const operatorSigningKey = { - /** - * Indexes operator signing key against OperatorId. - */ - v0: new StorageType('Domains.OperatorSigningKey', 'Optional', [sts.bytes()], sts.bigint()) as OperatorSigningKeyV0, -} - -/** - * Indexes operator signing key against OperatorId. - */ -export interface OperatorSigningKeyV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: Bytes): Promise<(bigint | undefined)> - getMany(block: Block, keys: Bytes[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: Bytes): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable - getPairs(block: Block): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairs(block: Block, key: Bytes): Promise<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: Bytes): AsyncIterable<[k: Bytes, v: (bigint | undefined)][]> -} - -export const domainStakingSummary = { - v0: new StorageType('Domains.DomainStakingSummary', 'Optional', [v0.DomainId], v0.StakingSummary) as DomainStakingSummaryV0, -} - -export interface DomainStakingSummaryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.StakingSummary | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.StakingSummary | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.StakingSummary | undefined)][]> -} - -export const operators = { - /** - * List of all registered operators and their configuration. - */ - v0: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v0.Operator) as OperatorsV0, - /** - * List of all registered operators and their configuration. - */ - v1: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v1.Operator) as OperatorsV1, - /** - * List of all registered operators and their configuration. - */ - v3: new StorageType('Domains.Operators', 'Optional', [sts.bigint()], v3.Operator) as OperatorsV3, -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v0.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v0.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v0.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v1.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v1.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v1.Operator | undefined)][]> -} - -/** - * List of all registered operators and their configuration. - */ -export interface OperatorsV3 { - is(block: RuntimeCtx): boolean - get(block: Block, key: bigint): Promise<(v3.Operator | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(v3.Operator | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (v3.Operator | undefined)][]> -} - -export const pendingOperatorSwitches = { - /** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ - v0: new StorageType('Domains.PendingOperatorSwitches', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingOperatorSwitchesV0, -} - -/** - * Temporary hold of all the operators who decided to switch to another domain. - * Once epoch is complete, these operators are added to new domains under next_operators. - */ -export interface PendingOperatorSwitchesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const operatorEpochSharePrice = { - /** - * Share price for the operator pool at the end of Domain epoch. - */ - v0: new StorageType('Domains.OperatorEpochSharePrice', 'Optional', [sts.bigint(), v0.DomainEpoch], v0.SharePrice) as OperatorEpochSharePriceV0, -} - -/** - * Share price for the operator pool at the end of Domain epoch. - */ -export interface OperatorEpochSharePriceV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<(v0.SharePrice | undefined)> - getMany(block: Block, keys: [bigint, v0.DomainEpoch][]): Promise<(v0.SharePrice | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.DomainEpoch][]> - getKeys(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.DomainEpoch][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[bigint, v0.DomainEpoch][]> - getPairs(block: Block): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.DomainEpoch): Promise<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.DomainEpoch): AsyncIterable<[k: [bigint, v0.DomainEpoch], v: (v0.SharePrice | undefined)][]> -} - -export const deposits = { - /** - * List of all deposits for given Operator. - */ - v0: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v0.AccountId32], v0.Deposit) as DepositsV0, - /** - * List of all deposits for given Operator. - */ - v1: new StorageType('Domains.Deposits', 'Optional', [sts.bigint(), v1.AccountId32], v1.Deposit) as DepositsV1, -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Deposit | undefined)][]> -} - -/** - * List of all deposits for given Operator. - */ -export interface DepositsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Deposit | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Deposit | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Deposit | undefined)][]> -} - -export const withdrawals = { - /** - * List of all withdrawals for a given operator. - */ - v0: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v0.AccountId32], v0.Withdrawal) as WithdrawalsV0, - /** - * List of all withdrawals for a given operator. - */ - v1: new StorageType('Domains.Withdrawals', 'Optional', [sts.bigint(), v1.AccountId32], v1.Withdrawal) as WithdrawalsV1, -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v0.AccountId32): Promise<(v0.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v0.AccountId32][]): Promise<(v0.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v0.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v0.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[bigint, v0.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v0.AccountId32): Promise<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v0.AccountId32): AsyncIterable<[k: [bigint, v0.AccountId32], v: (v0.Withdrawal | undefined)][]> -} - -/** - * List of all withdrawals for a given operator. - */ -export interface WithdrawalsV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: bigint, key2: v1.AccountId32): Promise<(v1.Withdrawal | undefined)> - getMany(block: Block, keys: [bigint, v1.AccountId32][]): Promise<(v1.Withdrawal | undefined)[]> - getKeys(block: Block): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint): Promise<[bigint, v1.AccountId32][]> - getKeys(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[bigint, v1.AccountId32][]> - getKeysPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[bigint, v1.AccountId32][]> - getPairs(block: Block): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairs(block: Block, key1: bigint, key2: v1.AccountId32): Promise<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: bigint, key2: v1.AccountId32): AsyncIterable<[k: [bigint, v1.AccountId32], v: (v1.Withdrawal | undefined)][]> -} - -export const nominatorCount = { - /** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ - v0: new StorageType('Domains.NominatorCount', 'Default', [sts.bigint()], sts.number()) as NominatorCountV0, -} - -/** - * Tracks the nominator count under given operator. - * This storage is necessary since CountedStorageNMap does not support prefix key count, so - * cannot use that storage type for `Nominators` storage. - * Note: The count is incremented for new nominators and decremented when the nominator withdraws - * all the stake. - * Since Operator themselves are first nominator, they are not counted. - */ -export interface NominatorCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: bigint): Promise<(number | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (number | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (number | undefined)][]> -} - -export const pendingSlashes = { - /** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ - v0: new StorageType('Domains.PendingSlashes', 'Optional', [v0.DomainId], sts.array(() => sts.bigint())) as PendingSlashesV0, -} - -/** - * A list operators who were slashed during the current epoch associated with the domain. - * When the epoch for a given domain is complete, operator total stake is moved to treasury and - * then deleted. - */ -export interface PendingSlashesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (bigint[] | undefined)][]> -} - -export const pendingStakingOperationCount = { - /** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ - v0: new StorageType('Domains.PendingStakingOperationCount', 'Default', [v0.DomainId], sts.number()) as PendingStakingOperationCountV0, -} - -/** - * The pending staking operation count of the current epoch, it should not larger than - * `MaxPendingStakingOperation` and will be resetted to 0 upon epoch transition. - */ -export interface PendingStakingOperationCountV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const nextDomainId = { - /** - * Stores the next domain id. - */ - v0: new StorageType('Domains.NextDomainId', 'Default', [], v0.DomainId) as NextDomainIdV0, -} - -/** - * Stores the next domain id. - */ -export interface NextDomainIdV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.DomainId - get(block: Block): Promise<(v0.DomainId | undefined)> -} - -export const domainRegistry = { - /** - * The domain registry - */ - v0: new StorageType('Domains.DomainRegistry', 'Optional', [v0.DomainId], v0.DomainObject) as DomainRegistryV0, - /** - * The domain registry - */ - v1: new StorageType('Domains.DomainRegistry', 'Optional', [v1.DomainId], v1.DomainObject) as DomainRegistryV1, - /** - * The domain registry - */ - v5: new StorageType('Domains.DomainRegistry', 'Optional', [v5.DomainId], v5.DomainObject) as DomainRegistryV5, -} - -/** - * The domain registry - */ -export interface DomainRegistryV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.DomainObject | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.DomainObject | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.DomainObject | undefined)][]> -} - -/** - * The domain registry - */ -export interface DomainRegistryV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.DomainId): Promise<(v5.DomainObject | undefined)> - getMany(block: Block, keys: v5.DomainId[]): Promise<(v5.DomainObject | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairs(block: Block, key: v5.DomainId): Promise<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.DomainId): AsyncIterable<[k: v5.DomainId, v: (v5.DomainObject | undefined)][]> -} - -export const blockTree = { - /** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ - v0: new StorageType('Domains.BlockTree', 'Optional', [v0.DomainId, sts.number()], v0.H256) as BlockTreeV0, -} - -/** - * The domain block tree, map (`domain_id`, `domain_block_number`) to the hash of ER, - * which can be used get the block tree node in `BlockTreeNodes` - */ -export interface BlockTreeV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const blockTreeNodes = { - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v0: new StorageType('Domains.BlockTreeNodes', 'Optional', [v0.H256], v0.BlockTreeNode) as BlockTreeNodesV0, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v1: new StorageType('Domains.BlockTreeNodes', 'Optional', [v1.H256], v1.BlockTreeNode) as BlockTreeNodesV1, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v5: new StorageType('Domains.BlockTreeNodes', 'Optional', [v5.H256], v5.BlockTreeNode) as BlockTreeNodesV5, - /** - * Mapping of block tree node hash to the node, each node represent a domain block - */ - v6: new StorageType('Domains.BlockTreeNodes', 'Optional', [v6.H256], v6.BlockTreeNode) as BlockTreeNodesV6, -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(v0.BlockTreeNode | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(v0.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (v0.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.H256): Promise<(v1.BlockTreeNode | undefined)> - getMany(block: Block, keys: v1.H256[]): Promise<(v1.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v1.H256): Promise<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.H256): AsyncIterable<[k: v1.H256, v: (v1.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV5 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v5.H256): Promise<(v5.BlockTreeNode | undefined)> - getMany(block: Block, keys: v5.H256[]): Promise<(v5.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v5.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v5.H256): Promise<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v5.H256): AsyncIterable<[k: v5.H256, v: (v5.BlockTreeNode | undefined)][]> -} - -/** - * Mapping of block tree node hash to the node, each node represent a domain block - */ -export interface BlockTreeNodesV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.H256): Promise<(v6.BlockTreeNode | undefined)> - getMany(block: Block, keys: v6.H256[]): Promise<(v6.BlockTreeNode | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairs(block: Block, key: v6.H256): Promise<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.H256): AsyncIterable<[k: v6.H256, v: (v6.BlockTreeNode | undefined)][]> -} - -export const headReceiptNumber = { - /** - * The head receipt number of each domain - */ - v0: new StorageType('Domains.HeadReceiptNumber', 'Default', [v0.DomainId], sts.number()) as HeadReceiptNumberV0, -} - -/** - * The head receipt number of each domain - */ -export interface HeadReceiptNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const latestConfirmedDomainBlockNumber = { - /** - * The latest confirmed block number of each domain. - */ - v0: new StorageType('Domains.LatestConfirmedDomainBlockNumber', 'Default', [v0.DomainId], sts.number()) as LatestConfirmedDomainBlockNumberV0, -} - -/** - * The latest confirmed block number of each domain. - */ -export interface LatestConfirmedDomainBlockNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const headReceiptExtended = { - /** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ - v0: new StorageType('Domains.HeadReceiptExtended', 'Default', [v0.DomainId], sts.boolean()) as HeadReceiptExtendedV0, -} - -/** - * Whether the head receipt have extended in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface HeadReceiptExtendedV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): boolean - get(block: Block, key: v0.DomainId): Promise<(boolean | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(boolean | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (boolean | undefined)][]> -} - -export const stateRoots = { - /** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ - v0: new StorageType('Domains.StateRoots', 'Optional', [sts.tuple(() => [v0.DomainId, sts.number(), v0.H256])], v0.H256) as StateRootsV0, -} - -/** - * State root mapped again each domain (block, hash) - * This acts as an index for other protocols like XDM to fetch state roots faster. - */ -export interface StateRootsV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, v0.H256][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, v0.H256][]> - getKeys(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getKeysPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[v0.DomainId, number, v0.H256][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key: [v0.DomainId, number, v0.H256]): Promise<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v0.DomainId, number, v0.H256]): AsyncIterable<[k: [v0.DomainId, number, v0.H256], v: (v0.H256 | undefined)][]> -} - -export const consensusBlockHash = { - /** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ - v0: new StorageType('Domains.ConsensusBlockHash', 'Optional', [v0.DomainId, sts.number()], v0.H256) as ConsensusBlockHashV0, -} - -/** - * The consensus block hash used to verify ER, - * only store the consensus block hash for a domain - * if that consensus block contains bundle of the domain, the hash will be pruned when the ER - * that point to the consensus block is pruned. - * - * TODO: this storage is unbounded in some cases, see https://github.com/subspace/subspace/issues/1673 - * for more details, this will be fixed once https://github.com/subspace/subspace/issues/1731 is implemented. - */ -export interface ConsensusBlockHashV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key1: v0.DomainId, key2: number): Promise<(v0.H256 | undefined)> - getMany(block: Block, keys: [v0.DomainId, number][]): Promise<(v0.H256 | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number], v: (v0.H256 | undefined)][]> -} - -export const executionInbox = { - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v0: new StorageType('Domains.ExecutionInbox', 'Default', [v0.DomainId, sts.number(), sts.number()], sts.array(() => v0.BundleDigest)) as ExecutionInboxV0, - /** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ - v1: new StorageType('Domains.ExecutionInbox', 'Default', [v1.DomainId, sts.number(), sts.number()], sts.array(() => v1.BundleDigest)) as ExecutionInboxV1, -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v0.BundleDigest[] - get(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<(v0.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v0.DomainId, number, number][]): Promise<(v0.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number): Promise<[v0.DomainId, number, number][]> - getKeys(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[v0.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[v0.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v0.DomainId, key2: number, key3: number): Promise<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v0.DomainId, key2: number, key3: number): AsyncIterable<[k: [v0.DomainId, number, number], v: (v0.BundleDigest[] | undefined)][]> -} - -/** - * A set of `BundleDigest` from all bundles that successfully submitted to the consensus block, - * these bundles will be used to construct the domain block and `ExecutionInbox` is used to: - * - * 1. Ensure subsequent ERs of that domain block include all pre-validated extrinsic bundles - * 2. Index the `InboxedBundleAuthor` and pruned its value when the corresponding `ExecutionInbox` is pruned - */ -export interface ExecutionInboxV1 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v1.BundleDigest[] - get(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<(v1.BundleDigest[] | undefined)> - getMany(block: Block, keys: [v1.DomainId, number, number][]): Promise<(v1.BundleDigest[] | undefined)[]> - getKeys(block: Block): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number): Promise<[v1.DomainId, number, number][]> - getKeys(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[v1.DomainId, number, number][]> - getKeysPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[v1.DomainId, number, number][]> - getPairs(block: Block): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairs(block: Block, key1: v1.DomainId, key2: number, key3: number): Promise<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key1: v1.DomainId, key2: number, key3: number): AsyncIterable<[k: [v1.DomainId, number, number], v: (v1.BundleDigest[] | undefined)][]> -} - -export const inboxedBundleAuthor = { - /** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ - v0: new StorageType('Domains.InboxedBundleAuthor', 'Optional', [v0.H256], sts.bigint()) as InboxedBundleAuthorV0, -} - -/** - * A mapping of `bundle_header_hash` -> `bundle_author` for all the successfully submitted bundles of - * the last `BlockTreePruningDepth` domain blocks. Used to verify the invalid bundle fraud proof and - * slash malicious operator who have submitted invalid bundle. - */ -export interface InboxedBundleAuthorV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.H256): Promise<(bigint | undefined)> - getMany(block: Block, keys: v0.H256[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.H256): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable - getPairs(block: Block): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairs(block: Block, key: v0.H256): Promise<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.H256): AsyncIterable<[k: v0.H256, v: (bigint | undefined)][]> -} - -export const headDomainNumber = { - /** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ - v0: new StorageType('Domains.HeadDomainNumber', 'Default', [v0.DomainId], sts.number()) as HeadDomainNumberV0, -} - -/** - * The block number of the best domain block, increase by one when the first bundle of the domain is - * successfully submitted to current consensus block, which mean a new domain block with this block - * number will be produce. Used as a pointer in `ExecutionInbox` to identify the current under building - * domain block, also used as a mapping of consensus block number to domain block number. - */ -export interface HeadDomainNumberV0 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: v0.DomainId): Promise<(number | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (number | undefined)][]> -} - -export const lastEpochStakingDistribution = { - /** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ - v0: new StorageType('Domains.LastEpochStakingDistribution', 'Optional', [v0.DomainId], v0.ElectionVerificationParams) as LastEpochStakingDistributionV0, -} - -/** - * A temporary storage to hold any previous epoch details for a given domain - * if the epoch transitioned in this block so that all the submitted bundles - * within this block are verified. - * TODO: The storage is cleared on block finalization that means this storage is already cleared when - * verifying the `submit_bundle` extrinsic and not used at all - */ -export interface LastEpochStakingDistributionV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.ElectionVerificationParams | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.ElectionVerificationParams | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.ElectionVerificationParams | undefined)][]> -} - -export const domainTxRangeState = { - v0: new StorageType('Domains.DomainTxRangeState', 'Optional', [v0.DomainId], v0.TxRangeState) as DomainTxRangeStateV0, -} - -export interface DomainTxRangeStateV0 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v0.DomainId): Promise<(v0.TxRangeState | undefined)> - getMany(block: Block, keys: v0.DomainId[]): Promise<(v0.TxRangeState | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v0.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairs(block: Block, key: v0.DomainId): Promise<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v0.DomainId): AsyncIterable<[k: v0.DomainId, v: (v0.TxRangeState | undefined)][]> -} - -export const latestConfirmedDomainBlock = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v1: new StorageType('Domains.LatestConfirmedDomainBlock', 'Optional', [v1.DomainId], v1.ConfirmedDomainBlock) as LatestConfirmedDomainBlockV1, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainBlockV1 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v1.DomainId): Promise<(v1.ConfirmedDomainBlock | undefined)> - getMany(block: Block, keys: v1.DomainId[]): Promise<(v1.ConfirmedDomainBlock | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v1.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairs(block: Block, key: v1.DomainId): Promise<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v1.DomainId): AsyncIterable<[k: v1.DomainId, v: (v1.ConfirmedDomainBlock | undefined)][]> -} - -export const latestSubmittedEr = { - /** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ - v3: new StorageType('Domains.LatestSubmittedER', 'Default', [sts.tuple(() => [v3.DomainId, sts.bigint()])], sts.number()) as LatestSubmittedErV3, -} - -/** - * The latest ER submitted by the operator for a given domain. It is used to determine if the operator - * has submitted bad ER and is pending to slash. - * - * The storage item of a given `(domain_id, operator_id)` will be pruned after either: - * - All the ERs submitted by the operator for this domain are confirmed and pruned - * - All the bad ERs submitted by the operator for this domain are pruned and the operator is slashed - */ -export interface LatestSubmittedErV3 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number - get(block: Block, key: [v3.DomainId, bigint]): Promise<(number | undefined)> - getMany(block: Block, keys: [v3.DomainId, bigint][]): Promise<(number | undefined)[]> - getKeys(block: Block): Promise<[v3.DomainId, bigint][]> - getKeys(block: Block, key: [v3.DomainId, bigint]): Promise<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block): AsyncIterable<[v3.DomainId, bigint][]> - getKeysPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[v3.DomainId, bigint][]> - getPairs(block: Block): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairs(block: Block, key: [v3.DomainId, bigint]): Promise<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: [v3.DomainId, bigint]): AsyncIterable<[k: [v3.DomainId, bigint], v: (number | undefined)][]> -} - -export const operatorHighestSlot = { - /** - * The highest slot of the bundle submitted by an operator - */ - v5: new StorageType('Domains.OperatorHighestSlot', 'Default', [sts.bigint()], sts.bigint()) as OperatorHighestSlotV5, -} - -/** - * The highest slot of the bundle submitted by an operator - */ -export interface OperatorHighestSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block, key: bigint): Promise<(bigint | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint | undefined)][]> -} - -export const operatorBundleSlot = { - /** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ - v5: new StorageType('Domains.OperatorBundleSlot', 'Default', [sts.bigint()], sts.array(() => sts.bigint())) as OperatorBundleSlotV5, -} - -/** - * The set of slot of the bundle submitted by an operator in the current block, cleared at the - * next block initialization - */ -export interface OperatorBundleSlotV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint[] - get(block: Block, key: bigint): Promise<(bigint[] | undefined)> - getMany(block: Block, keys: bigint[]): Promise<(bigint[] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: bigint): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: bigint): AsyncIterable - getPairs(block: Block): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairs(block: Block, key: bigint): Promise<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: bigint): AsyncIterable<[k: bigint, v: (bigint[] | undefined)][]> -} - -export const permissionedActionAllowedBy = { - /** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ - v5: new StorageType('Domains.PermissionedActionAllowedBy', 'Optional', [], v5.PermissionedActionAllowedBy) as PermissionedActionAllowedByV5, -} - -/** - * Storage for PermissionedActions for domain instantiation and other permissioned calls. - */ -export interface PermissionedActionAllowedByV5 { - is(block: RuntimeCtx): boolean - get(block: Block): Promise<(v5.PermissionedActionAllowedBy | undefined)> -} - -export const accumulatedTreasuryFunds = { - /** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ - v5: new StorageType('Domains.AccumulatedTreasuryFunds', 'Default', [], sts.bigint()) as AccumulatedTreasuryFundsV5, -} - -/** - * Accumulate treasury funds temporarily until the funds are above Existential despoit. - * We do this to ensure minting small amounts into treasury would not fail. - */ -export interface AccumulatedTreasuryFundsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): bigint - get(block: Block): Promise<(bigint | undefined)> -} - -export const domainRuntimeUpgradeRecords = { - /** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ - v5: new StorageType('Domains.DomainRuntimeUpgradeRecords', 'Default', [sts.number()], sts.array(() => sts.tuple(() => [sts.number(), v5.DomainRuntimeUpgradeEntry]))) as DomainRuntimeUpgradeRecordsV5, -} - -/** - * Storage used to keep track of which consensus block the domain runtime upgrade happen. - */ -export interface DomainRuntimeUpgradeRecordsV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): [number, v5.DomainRuntimeUpgradeEntry][] - get(block: Block, key: number): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)> - getMany(block: Block, keys: number[]): Promise<([number, v5.DomainRuntimeUpgradeEntry][] | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: number): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: number): AsyncIterable - getPairs(block: Block): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairs(block: Block, key: number): Promise<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: number): AsyncIterable<[k: number, v: ([number, v5.DomainRuntimeUpgradeEntry][] | undefined)][]> -} - -export const domainRuntimeUpgrades = { - /** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ - v5: new StorageType('Domains.DomainRuntimeUpgrades', 'Default', [], sts.array(() => sts.number())) as DomainRuntimeUpgradesV5, -} - -/** - * Temporary storage keep track of domain runtime upgrade happen in the current block, cleared - * in the next block initialization. - */ -export interface DomainRuntimeUpgradesV5 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): number[] - get(block: Block): Promise<(number[] | undefined)> -} - -export const newAddedHeadReceipt = { - /** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ - v6: new StorageType('Domains.NewAddedHeadReceipt', 'Optional', [v6.DomainId], v6.H256) as NewAddedHeadReceiptV6, -} - -/** - * The hash of the new head receipt added in the current consensus block - * - * Temporary storage only exist during block execution - */ -export interface NewAddedHeadReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.H256 | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.H256 | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.H256 | undefined)][]> -} - -export const latestConfirmedDomainExecutionReceipt = { - /** - * Storage to hold all the domain's latest confirmed block. - */ - v6: new StorageType('Domains.LatestConfirmedDomainExecutionReceipt', 'Optional', [v6.DomainId], v6.ExecutionReceipt) as LatestConfirmedDomainExecutionReceiptV6, -} - -/** - * Storage to hold all the domain's latest confirmed block. - */ -export interface LatestConfirmedDomainExecutionReceiptV6 { - is(block: RuntimeCtx): boolean - get(block: Block, key: v6.DomainId): Promise<(v6.ExecutionReceipt | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.ExecutionReceipt | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.ExecutionReceipt | undefined)][]> -} - -export const domainSudoCalls = { - /** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ - v6: new StorageType('Domains.DomainSudoCalls', 'Default', [v6.DomainId], v6.DomainSudoCall) as DomainSudoCallsV6, -} - -/** - * Temporary storage to hold the sudo calls meant for the Domains. - * Storage is cleared when there are any successful bundles in the next block. - * Only one sudo call is allowed per domain per consensus block. - */ -export interface DomainSudoCallsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainSudoCall - get(block: Block, key: v6.DomainId): Promise<(v6.DomainSudoCall | undefined)> - getMany(block: Block, keys: v6.DomainId[]): Promise<(v6.DomainSudoCall | undefined)[]> - getKeys(block: Block): Promise - getKeys(block: Block, key: v6.DomainId): Promise - getKeysPaged(pageSize: number, block: Block): AsyncIterable - getKeysPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable - getPairs(block: Block): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairs(block: Block, key: v6.DomainId): Promise<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> - getPairsPaged(pageSize: number, block: Block, key: v6.DomainId): AsyncIterable<[k: v6.DomainId, v: (v6.DomainSudoCall | undefined)][]> -} - -export const frozenDomains = { - /** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ - v6: new StorageType('Domains.FrozenDomains', 'Default', [], sts.array(() => v6.DomainId)) as FrozenDomainsV6, -} - -/** - * Storage that hold a list of all frozen domains. - * A frozen domain does not accept the bundles but does accept a fraud proof. - */ -export interface FrozenDomainsV6 { - is(block: RuntimeCtx): boolean - getDefault(block: Block): v6.DomainId[] - get(block: Block): Promise<(v6.DomainId[] | undefined)> -} diff --git a/indexers/staking-squid/src/types/events.ts b/indexers/staking-squid/src/types/events.ts deleted file mode 100644 index 588ebdc52..000000000 --- a/indexers/staking-squid/src/types/events.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/events' diff --git a/indexers/staking-squid/src/types/index.ts b/indexers/staking-squid/src/types/index.ts deleted file mode 100644 index 720ed4165..000000000 --- a/indexers/staking-squid/src/types/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * as v0 from './v0' -export * as v5 from './v5' -export * as v6 from './v6' -export * as v1 from './v1' -export * as v3 from './v3' -export * as events from './events' -export * as calls from './calls' -export * as constants from './constants' -export * as storage from './storage' diff --git a/indexers/staking-squid/src/types/storage.ts b/indexers/staking-squid/src/types/storage.ts deleted file mode 100644 index fa4c362de..000000000 --- a/indexers/staking-squid/src/types/storage.ts +++ /dev/null @@ -1 +0,0 @@ -export * as domains from './domains/storage' diff --git a/indexers/staking-squid/src/types/support.ts b/indexers/staking-squid/src/types/support.ts deleted file mode 100644 index 456dfc2fb..000000000 --- a/indexers/staking-squid/src/types/support.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type {BitSequence, Bytes, QualifiedName, Runtime} from '@subsquid/substrate-runtime' -import * as sts from '@subsquid/substrate-runtime/lib/sts' -import {Option, Result} from '@subsquid/substrate-runtime/lib/sts' -import assert from 'assert' - - -export {sts, Bytes, BitSequence, Option, Result} - - -export interface RuntimeCtx { - _runtime: Runtime -} - - -export interface Block extends RuntimeCtx { - hash: Bytes - height: number -} - - -interface Event { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -interface Call { - block: RuntimeCtx - name: QualifiedName - args: unknown -} - - -export class EventType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.events.checkType(this.name, this.type) - } - - is(event: Event): boolean { - return this.name == event.name && this.matches(event.block) - } - - decode(event: Event): sts.GetType { - assert(this.is(event)) - return event.block._runtime.decodeJsonEventRecordArguments(event) - } -} - - -export class CallType { - constructor(public readonly name: QualifiedName, private type: T) {} - - matches(block: RuntimeCtx): boolean { - return block._runtime.calls.checkType(this.name, this.type) - } - - is(call: Call): boolean { - return this.name == call.name && this.matches(call.block) - } - - decode(call: Call): sts.GetType { - assert(this.is(call)) - return call.block._runtime.decodeJsonCallRecordArguments(call) - } -} - - -export class ConstantType { - constructor(private name: QualifiedName, private type: T) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkConstantType(this.name, this.type) - } - - get(block: RuntimeCtx): sts.GetType { - assert(this.is(block)) - return block._runtime.getConstant(this.name) - } -} - - -export class StorageType { - constructor( - private name: QualifiedName, - private modifier: 'Required' | 'Optional' | 'Default', - private key: sts.Type[], - private value: sts.Type - ) {} - - is(block: RuntimeCtx): boolean { - return block._runtime.checkStorageType(this.name, this.modifier, this.key, this.value) - } - - async get(block: Block, ...key: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorage(block.hash, this.name, ...key) - } - - async getAll(block: Block): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name) - } - - async getMany(block: Block, keys: any[]): Promise { - assert(this.is(block)) - return block._runtime.queryStorage(block.hash, this.name, keys) - } - - async getKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageKeys(block.hash, this.name, ...args) - } - - async getRawKeys(block: Block, ...args: any[]): Promise { - assert(this.is(block)) - return block._runtime.getStorageRawKeys(block.hash, this.name, ...args) - } - - getKeysPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable { - assert(this.is(block)) - return block._runtime.getStorageKeysPaged(pageSize, block.hash, this.name, ...args) - } - - async getPairs(block: Block, ...args: any[]): Promise<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairs(block.hash, this.name, ...args) - } - - getPairsPaged(pageSize: number, block: Block, ...args: any[]): AsyncIterable<[key: any, value: any][]> { - assert(this.is(block)) - return block._runtime.getStoragePairsPaged(pageSize, block.hash, this.name, ...args) - } - - getDefault(block: Block): any { - assert(this.modifier == 'Default') - assert(this.is(block)) - return block._runtime.getStorageFallback(this.name) - } -} diff --git a/indexers/staking-squid/src/types/v0.ts b/indexers/staking-squid/src/types/v0.ts deleted file mode 100644 index f573774c5..000000000 --- a/indexers/staking-squid/src/types/v0.ts +++ /dev/null @@ -1,934 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface TxRangeState { - txRange: U256 - intervalBlocks: bigint - intervalBundles: bigint -} - -export type U256 = bigint - -export const TxRangeState: sts.Type = sts.struct(() => { - return { - txRange: U256, - intervalBlocks: sts.bigint(), - intervalBundles: sts.bigint(), - } -}) - -export const U256 = sts.bigint() - -export interface ElectionVerificationParams { - operators: [bigint, bigint][] - totalDomainStake: bigint -} - -export const ElectionVerificationParams: sts.Type = sts.struct(() => { - return { - operators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - totalDomainStake: sts.bigint(), - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - } -}) - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: [DomainId, number, bigint][] - withdrawalInShares?: ([DomainEpoch, number, bigint] | undefined) -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => sts.tuple(() => [DomainId, sts.number(), sts.bigint()])), - withdrawalInShares: sts.option(() => sts.tuple(() => [DomainEpoch, sts.number(), sts.bigint()])), - } -}) - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint -} - -export interface KnownDeposit { - shares: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - } -}) - -export type DomainEpoch = [DomainId, number] - -export type SharePrice = number - -export const SharePrice = sts.number() - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export interface StakingSummary { - currentEpochIndex: number - currentTotalStake: bigint - currentOperators: [bigint, bigint][] - nextOperators: bigint[] - currentEpochRewards: [bigint, bigint][] -} - -export const StakingSummary: sts.Type = sts.struct(() => { - return { - currentEpochIndex: sts.number(), - currentTotalStake: sts.bigint(), - currentOperators: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - nextOperators: sts.array(() => sts.bigint()), - currentEpochRewards: sts.array(() => sts.tuple(() => [sts.bigint(), sts.bigint()])), - } -}) - -export type AccountId32 = Bytes - -export interface ScheduledRuntimeUpgrade { - rawGenesis: RawGenesis - version: RuntimeVersion - hash: H256 -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export const ScheduledRuntimeUpgrade: sts.Type = sts.struct(() => { - return { - rawGenesis: RawGenesis, - version: RuntimeVersion, - hash: H256, - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export type RuntimeType = RuntimeType_Evm - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - bundleSize: sts.number(), - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - globalRandomness: Randomness, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const Randomness = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - globalRandomness: Randomness - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type Randomness = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - bundleSize: number - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - BundleEquivocation: Slot, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_BundleEquivocation | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_BundleEquivocation { - __kind: 'BundleEquivocation' - value: Slot -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const AccountId32 = sts.bytes() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - Evm: sts.unit(), - } -}) - -export const H256 = sts.bytes() - -export const DomainId = sts.number() diff --git a/indexers/staking-squid/src/types/v1.ts b/indexers/staking-squid/src/types/v1.ts deleted file mode 100644 index 0b5706a56..000000000 --- a/indexers/staking-squid/src/types/v1.ts +++ /dev/null @@ -1,890 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export const PalletId = sts.bytes() - -export interface ConfirmedDomainBlock { - blockNumber: number - blockHash: H256 - parentBlockReceiptHash: H256 - stateRoot: H256 - extrinsicsRoot: H256 -} - -export const ConfirmedDomainBlock: sts.Type = sts.struct(() => { - return { - blockNumber: sts.number(), - blockHash: H256, - parentBlockReceiptHash: H256, - stateRoot: H256, - extrinsicsRoot: H256, - } -}) - -export interface BundleDigest { - headerHash: H256 - extrinsicsRoot: H256 - size: number -} - -export const BundleDigest: sts.Type = sts.struct(() => { - return { - headerHash: H256, - extrinsicsRoot: H256, - size: sts.number(), - } -}) - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainId = sts.number() - -export interface Withdrawal { - totalWithdrawalAmount: bigint - withdrawals: WithdrawalInBalance[] - withdrawalInShares?: (WithdrawalInShares | undefined) -} - -export interface WithdrawalInShares { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number - shares: bigint - storageFeeRefund: bigint -} - -export type DomainEpoch = [DomainId, number] - -export interface WithdrawalInBalance { - domainId: DomainId - unlockAtConfirmedDomainBlockNumber: number - amountToUnlock: bigint - storageFeeRefund: bigint -} - -export const Withdrawal: sts.Type = sts.struct(() => { - return { - totalWithdrawalAmount: sts.bigint(), - withdrawals: sts.array(() => WithdrawalInBalance), - withdrawalInShares: sts.option(() => WithdrawalInShares), - } -}) - -export const WithdrawalInShares: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - shares: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const WithdrawalInBalance: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - unlockAtConfirmedDomainBlockNumber: sts.number(), - amountToUnlock: sts.bigint(), - storageFeeRefund: sts.bigint(), - } -}) - -export type AccountId32 = Bytes - -export interface Deposit { - known: KnownDeposit - pending?: (PendingDeposit | undefined) -} - -export interface PendingDeposit { - effectiveDomainEpoch: DomainEpoch - amount: bigint - storageFeeDeposit: bigint -} - -export interface KnownDeposit { - shares: bigint - storageFeeDeposit: bigint -} - -export const Deposit: sts.Type = sts.struct(() => { - return { - known: KnownDeposit, - pending: sts.option(() => PendingDeposit), - } -}) - -export const PendingDeposit: sts.Type = sts.struct(() => { - return { - effectiveDomainEpoch: DomainEpoch, - amount: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export const KnownDeposit: sts.Type = sts.struct(() => { - return { - shares: sts.bigint(), - storageFeeDeposit: sts.bigint(), - } -}) - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const Percent = sts.number() - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const FraudProof: sts.Type = sts.closedEnum(() => { - return { - BundleEquivocation: BundleEquivocationProof, - ImproperTransactionSortition: ImproperTransactionSortitionProof, - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesFraudProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransaction: InvalidTransactionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - bundleIndex: sts.number(), - } -}) - -export interface ValidBundleProof { - domainId: DomainId - badReceiptHash: H256 - bundleIndex: number -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const InvalidTransactionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - domainBlockNumber: sts.number(), - domainBlockHash: H256, - invalidExtrinsic: sts.bytes(), - storageProof: StorageProof, - } -}) - -export interface InvalidTransactionProof { - domainId: DomainId - badReceiptHash: H256 - domainBlockNumber: number - domainBlockHash: H256 - invalidExtrinsic: Bytes - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - proof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - domainId: DomainId - badReceiptHash: H256 - proof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - validBundleDigests: sts.array(() => ValidBundleDigest), - } -}) - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - domainId: DomainId - badReceiptHash: H256 - validBundleDigests: ValidBundleDigest[] -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - domainId: DomainId - badReceiptHash: H256 - digestStorageProof: StorageProof -} - -export const InvalidBundlesFraudProof: sts.Type = sts.struct(() => { - return { - badReceiptHash: H256, - domainId: DomainId, - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - proofData: StorageProof, - isTrueInvalidFraudProof: sts.boolean(), - } -}) - -export interface InvalidBundlesFraudProof { - badReceiptHash: H256 - domainId: DomainId - bundleIndex: number - invalidBundleType: InvalidBundleType - proofData: StorageProof - isTrueInvalidFraudProof: boolean -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - domainId: DomainId - badReceiptHash: H256 - storageProof: StorageProof -} - -export const ImproperTransactionSortitionProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - } -}) - -export interface ImproperTransactionSortitionProof { - domainId: DomainId - badReceiptHash: H256 -} - -export const BundleEquivocationProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slot: Slot, - firstHeader: SealedBundleHeader, - secondHeader: SealedBundleHeader, - } -}) - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export const Slot = sts.bigint() - -export interface BundleEquivocationProof { - domainId: DomainId - slot: Slot - firstHeader: SealedBundleHeader - secondHeader: SealedBundleHeader -} - -export type Slot = bigint - -export type FraudProof = FraudProof_BundleEquivocation | FraudProof_ImproperTransactionSortition | FraudProof_InvalidBlockFees | FraudProof_InvalidBundles | FraudProof_InvalidDomainBlockHash | FraudProof_InvalidExtrinsicsRoot | FraudProof_InvalidStateTransition | FraudProof_InvalidTransaction | FraudProof_InvalidTransfers | FraudProof_ValidBundle - -export interface FraudProof_BundleEquivocation { - __kind: 'BundleEquivocation' - value: BundleEquivocationProof -} - -export interface FraudProof_ImproperTransactionSortition { - __kind: 'ImproperTransactionSortition' - value: ImproperTransactionSortitionProof -} - -export interface FraudProof_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProof_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesFraudProof -} - -export interface FraudProof_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProof_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProof_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProof_InvalidTransaction { - __kind: 'InvalidTransaction' - value: InvalidTransactionProof -} - -export interface FraudProof_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProof_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export const AccountId32 = sts.bytes() diff --git a/indexers/staking-squid/src/types/v3.ts b/indexers/staking-squid/src/types/v3.ts deleted file mode 100644 index 81adc1468..000000000 --- a/indexers/staking-squid/src/types/v3.ts +++ /dev/null @@ -1,85 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export type DomainId = number - -export const DomainId = sts.number() - -export interface Operator { - signingKey: Bytes - currentDomainId: DomainId - nextDomainId: DomainId - minimumNominatorStake: bigint - nominationTax: Percent - currentTotalStake: bigint - currentEpochRewards: bigint - currentTotalShares: bigint - status: OperatorStatus - depositsInEpoch: bigint - withdrawalsInEpoch: bigint - totalStorageFeeDeposit: bigint -} - -export type OperatorStatus = OperatorStatus_Deregistered | OperatorStatus_PendingSlash | OperatorStatus_Registered | OperatorStatus_Slashed - -export interface OperatorStatus_Deregistered { - __kind: 'Deregistered' - value: OperatorDeregisteredInfo -} - -export interface OperatorStatus_PendingSlash { - __kind: 'PendingSlash' -} - -export interface OperatorStatus_Registered { - __kind: 'Registered' -} - -export interface OperatorStatus_Slashed { - __kind: 'Slashed' -} - -export interface OperatorDeregisteredInfo { - domainEpoch: DomainEpoch - unlockAtConfirmedDomainBlockNumber: number -} - -export type DomainEpoch = [DomainId, number] - -export type Percent = number - -export const Operator: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - currentDomainId: DomainId, - nextDomainId: DomainId, - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - currentTotalStake: sts.bigint(), - currentEpochRewards: sts.bigint(), - currentTotalShares: sts.bigint(), - status: OperatorStatus, - depositsInEpoch: sts.bigint(), - withdrawalsInEpoch: sts.bigint(), - totalStorageFeeDeposit: sts.bigint(), - } -}) - -export const OperatorStatus: sts.Type = sts.closedEnum(() => { - return { - Deregistered: OperatorDeregisteredInfo, - PendingSlash: sts.unit(), - Registered: sts.unit(), - Slashed: sts.unit(), - } -}) - -export const OperatorDeregisteredInfo: sts.Type = sts.struct(() => { - return { - domainEpoch: DomainEpoch, - unlockAtConfirmedDomainBlockNumber: sts.number(), - } -}) - -export const DomainEpoch = sts.tuple(() => [DomainId, sts.number()]) - -export const Percent = sts.number() diff --git a/indexers/staking-squid/src/types/v5.ts b/indexers/staking-squid/src/types/v5.ts deleted file mode 100644 index 4735ccf0d..000000000 --- a/indexers/staking-squid/src/types/v5.ts +++ /dev/null @@ -1,978 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainRuntimeUpgradeEntry { - atHash: H256 - referenceCount: number -} - -export const DomainRuntimeUpgradeEntry: sts.Type = sts.struct(() => { - return { - atHash: H256, - referenceCount: sts.number(), - } -}) - -export type PermissionedActionAllowedBy = PermissionedActionAllowedBy_Accounts | PermissionedActionAllowedBy_Anyone - -export interface PermissionedActionAllowedBy_Accounts { - __kind: 'Accounts' - value: AccountId32[] -} - -export interface PermissionedActionAllowedBy_Anyone { - __kind: 'Anyone' -} - -export type AccountId32 = Bytes - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export const H256 = sts.bytes() - -export type DomainId = number - -export interface DomainObject { - ownerAccountId: AccountId32 - createdAt: number - genesisReceiptHash: H256 - domainConfig: DomainConfig - domainRuntimeInfo: DomainRuntimeInfo -} - -export type DomainRuntimeInfo = DomainRuntimeInfo_AutoId | DomainRuntimeInfo_EVM - -export interface DomainRuntimeInfo_AutoId { - __kind: 'AutoId' -} - -export interface DomainRuntimeInfo_EVM { - __kind: 'EVM' - chainId: bigint -} - -export interface DomainConfig { - domainName: string - runtimeId: number - maxBlockSize: number - maxBlockWeight: Weight - bundleSlotProbability: [bigint, bigint] - targetBundlesPerBlock: number - operatorAllowList: OperatorAllowList - initialBalances: [MultiAccountId, bigint][] -} - -export type MultiAccountId = MultiAccountId_AccountId20 | MultiAccountId_AccountId32 | MultiAccountId_Raw - -export interface MultiAccountId_AccountId20 { - __kind: 'AccountId20' - value: Bytes -} - -export interface MultiAccountId_AccountId32 { - __kind: 'AccountId32' - value: Bytes -} - -export interface MultiAccountId_Raw { - __kind: 'Raw' - value: Bytes -} - -export type OperatorAllowList = OperatorAllowList_Anyone | OperatorAllowList_Operators - -export interface OperatorAllowList_Anyone { - __kind: 'Anyone' -} - -export interface OperatorAllowList_Operators { - __kind: 'Operators' - value: AccountId32[] -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export const DomainObject: sts.Type = sts.struct(() => { - return { - ownerAccountId: AccountId32, - createdAt: sts.number(), - genesisReceiptHash: H256, - domainConfig: DomainConfig, - domainRuntimeInfo: DomainRuntimeInfo, - } -}) - -export const DomainRuntimeInfo: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - EVM: sts.enumStruct({ - chainId: sts.bigint(), - }), - } -}) - -export const DomainConfig: sts.Type = sts.struct(() => { - return { - domainName: sts.string(), - runtimeId: sts.number(), - maxBlockSize: sts.number(), - maxBlockWeight: Weight, - bundleSlotProbability: sts.tuple(() => [sts.bigint(), sts.bigint()]), - targetBundlesPerBlock: sts.number(), - operatorAllowList: OperatorAllowList, - initialBalances: sts.array(() => sts.tuple(() => [MultiAccountId, sts.bigint()])), - } -}) - -export const MultiAccountId: sts.Type = sts.closedEnum(() => { - return { - AccountId20: sts.bytes(), - AccountId32: sts.bytes(), - Raw: sts.bytes(), - } -}) - -export const OperatorAllowList: sts.Type = sts.closedEnum(() => { - return { - Anyone: sts.unit(), - Operators: sts.array(() => AccountId32), - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const AccountId32 = sts.bytes() - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export const PermissionedActionAllowedBy: sts.Type = sts.closedEnum(() => { - return { - Accounts: sts.array(() => AccountId32), - Anyone: sts.unit(), - } -}) - -export const OperatorConfig: sts.Type = sts.struct(() => { - return { - signingKey: sts.bytes(), - minimumNominatorStake: sts.bigint(), - nominationTax: Percent, - } -}) - -export const Percent = sts.number() - -export interface OperatorConfig { - signingKey: Bytes - minimumNominatorStake: bigint - nominationTax: Percent -} - -export type Percent = number - -export const DomainId = sts.number() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export type PotOutput = Bytes - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - } -}) - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - } -}) - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: Proof -} - -export interface Proof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: Proof, - } -}) - -export const Proof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export const PotOutput = sts.bytes() - -export const SlashedReason: sts.Type = sts.closedEnum(() => { - return { - BadExecutionReceipt: H256, - InvalidBundle: sts.number(), - } -}) - -export type SlashedReason = SlashedReason_BadExecutionReceipt | SlashedReason_InvalidBundle - -export interface SlashedReason_BadExecutionReceipt { - __kind: 'BadExecutionReceipt' - value: H256 -} - -export interface SlashedReason_InvalidBundle { - __kind: 'InvalidBundle' - value: number -} - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) diff --git a/indexers/staking-squid/src/types/v6.ts b/indexers/staking-squid/src/types/v6.ts deleted file mode 100644 index 91f2e1d24..000000000 --- a/indexers/staking-squid/src/types/v6.ts +++ /dev/null @@ -1,890 +0,0 @@ -import {sts, Result, Option, Bytes, BitSequence} from './support' - -export interface DomainSudoCall { - maybeCall?: (Bytes | undefined) -} - -export const DomainSudoCall: sts.Type = sts.struct(() => { - return { - maybeCall: sts.option(() => sts.bytes()), - } -}) - -export interface ExecutionReceipt { - domainBlockNumber: number - domainBlockHash: H256 - domainBlockExtrinsicRoot: H256 - parentDomainBlockReceiptHash: H256 - consensusBlockNumber: number - consensusBlockHash: H256 - inboxedBundles: InboxedBundle[] - finalStateRoot: H256 - executionTrace: H256[] - executionTraceRoot: H256 - blockFees: BlockFees - transfers: Transfers -} - -export interface Transfers { - transfersIn: [ChainId, bigint][] - transfersOut: [ChainId, bigint][] - rejectedTransfersClaimed: [ChainId, bigint][] - transfersRejected: [ChainId, bigint][] -} - -export type ChainId = ChainId_Consensus | ChainId_Domain - -export interface ChainId_Consensus { - __kind: 'Consensus' -} - -export interface ChainId_Domain { - __kind: 'Domain' - value: DomainId -} - -export interface BlockFees { - consensusStorageFee: bigint - domainExecutionFee: bigint - burnedBalance: bigint -} - -export interface InboxedBundle { - bundle: BundleValidity - extrinsicsRoot: H256 -} - -export type BundleValidity = BundleValidity_Invalid | BundleValidity_Valid - -export interface BundleValidity_Invalid { - __kind: 'Invalid' - value: InvalidBundleType -} - -export interface BundleValidity_Valid { - __kind: 'Valid' - value: H256 -} - -export type InvalidBundleType = InvalidBundleType_IllegalTx | InvalidBundleType_InherentExtrinsic | InvalidBundleType_InvalidBundleWeight | InvalidBundleType_InvalidXDM | InvalidBundleType_OutOfRangeTx | InvalidBundleType_UndecodableTx - -export interface InvalidBundleType_IllegalTx { - __kind: 'IllegalTx' - value: number -} - -export interface InvalidBundleType_InherentExtrinsic { - __kind: 'InherentExtrinsic' - value: number -} - -export interface InvalidBundleType_InvalidBundleWeight { - __kind: 'InvalidBundleWeight' -} - -export interface InvalidBundleType_InvalidXDM { - __kind: 'InvalidXDM' - value: number -} - -export interface InvalidBundleType_OutOfRangeTx { - __kind: 'OutOfRangeTx' - value: number -} - -export interface InvalidBundleType_UndecodableTx { - __kind: 'UndecodableTx' - value: number -} - -export const ExecutionReceipt: sts.Type = sts.struct(() => { - return { - domainBlockNumber: sts.number(), - domainBlockHash: H256, - domainBlockExtrinsicRoot: H256, - parentDomainBlockReceiptHash: H256, - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - inboxedBundles: sts.array(() => InboxedBundle), - finalStateRoot: H256, - executionTrace: sts.array(() => H256), - executionTraceRoot: H256, - blockFees: BlockFees, - transfers: Transfers, - } -}) - -export const Transfers: sts.Type = sts.struct(() => { - return { - transfersIn: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersOut: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - rejectedTransfersClaimed: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - transfersRejected: sts.array(() => sts.tuple(() => [ChainId, sts.bigint()])), - } -}) - -export const ChainId: sts.Type = sts.closedEnum(() => { - return { - Consensus: sts.unit(), - Domain: DomainId, - } -}) - -export const BlockFees: sts.Type = sts.struct(() => { - return { - consensusStorageFee: sts.bigint(), - domainExecutionFee: sts.bigint(), - burnedBalance: sts.bigint(), - } -}) - -export const InboxedBundle: sts.Type = sts.struct(() => { - return { - bundle: BundleValidity, - extrinsicsRoot: H256, - } -}) - -export const BundleValidity: sts.Type = sts.closedEnum(() => { - return { - Invalid: InvalidBundleType, - Valid: H256, - } -}) - -export const InvalidBundleType: sts.Type = sts.closedEnum(() => { - return { - IllegalTx: sts.number(), - InherentExtrinsic: sts.number(), - InvalidBundleWeight: sts.unit(), - InvalidXDM: sts.number(), - OutOfRangeTx: sts.number(), - UndecodableTx: sts.number(), - } -}) - -export type DomainId = number - -export type H256 = Bytes - -export interface BlockTreeNode { - executionReceipt: ExecutionReceipt - operatorIds: bigint[] -} - -export const BlockTreeNode: sts.Type = sts.struct(() => { - return { - executionReceipt: ExecutionReceipt, - operatorIds: sts.array(() => sts.bigint()), - } -}) - -export interface RuntimeObject { - runtimeName: string - runtimeType: RuntimeType - runtimeUpgrades: number - instanceCount: number - hash: H256 - rawGenesis: RawGenesis - version: RuntimeVersion - createdAt: number - updatedAt: number -} - -export interface RuntimeVersion { - specName: string - implName: string - authoringVersion: number - specVersion: number - implVersion: number - apis: [Bytes, number][] - transactionVersion: number - stateVersion: number - extrinsicStateVersion: number -} - -export interface RawGenesis { - top: [StorageKey, StorageData][] - childrenDefault: [StorageKey, [StorageKey, StorageData][]][] -} - -export type StorageData = Bytes - -export type StorageKey = Bytes - -export type RuntimeType = RuntimeType_AutoId | RuntimeType_Evm - -export interface RuntimeType_AutoId { - __kind: 'AutoId' -} - -export interface RuntimeType_Evm { - __kind: 'Evm' -} - -export const RuntimeObject: sts.Type = sts.struct(() => { - return { - runtimeName: sts.string(), - runtimeType: RuntimeType, - runtimeUpgrades: sts.number(), - instanceCount: sts.number(), - hash: H256, - rawGenesis: RawGenesis, - version: RuntimeVersion, - createdAt: sts.number(), - updatedAt: sts.number(), - } -}) - -export const RuntimeVersion: sts.Type = sts.struct(() => { - return { - specName: sts.string(), - implName: sts.string(), - authoringVersion: sts.number(), - specVersion: sts.number(), - implVersion: sts.number(), - apis: sts.array(() => sts.tuple(() => [sts.bytes(), sts.number()])), - transactionVersion: sts.number(), - stateVersion: sts.number(), - extrinsicStateVersion: sts.number(), - } -}) - -export const RawGenesis: sts.Type = sts.struct(() => { - return { - top: sts.array(() => sts.tuple(() => [StorageKey, StorageData])), - childrenDefault: sts.array(() => sts.tuple(() => [StorageKey, sts.array(() => sts.tuple(() => [StorageKey, StorageData]))])), - } -}) - -export const StorageData = sts.bytes() - -export const StorageKey = sts.bytes() - -export const RuntimeType: sts.Type = sts.closedEnum(() => { - return { - AutoId: sts.unit(), - Evm: sts.unit(), - } -}) - -export const SealedSingletonReceipt: sts.Type = sts.struct(() => { - return { - singletonReceipt: SingletonReceipt, - signature: sts.bytes(), - } -}) - -export const SingletonReceipt: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - } -}) - -export const ProofOfElection: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - slotNumber: sts.bigint(), - proofOfTime: PotOutput, - vrfSignature: VrfSignature, - operatorId: sts.bigint(), - consensusBlockHash: H256, - } -}) - -export const VrfSignature: sts.Type = sts.struct(() => { - return { - preOutput: sts.bytes(), - proof: sts.bytes(), - } -}) - -export interface VrfSignature { - preOutput: Bytes - proof: Bytes -} - -export const PotOutput = sts.bytes() - -export interface ProofOfElection { - domainId: DomainId - slotNumber: bigint - proofOfTime: PotOutput - vrfSignature: VrfSignature - operatorId: bigint - consensusBlockHash: H256 -} - -export type PotOutput = Bytes - -export interface SingletonReceipt { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt -} - -export interface SealedSingletonReceipt { - singletonReceipt: SingletonReceipt - signature: Bytes -} - -export const H256 = sts.bytes() - -export const FraudProof: sts.Type = sts.struct(() => { - return { - domainId: DomainId, - badReceiptHash: H256, - maybeMmrProof: sts.option(() => ConsensusChainMmrLeafProof), - maybeDomainRuntimeCodeProof: sts.option(() => DomainRuntimeCodeAt), - proof: FraudProofVariant, - } -}) - -export const FraudProofVariant: sts.Type = sts.closedEnum(() => { - return { - InvalidBlockFees: InvalidBlockFeesProof, - InvalidBundles: InvalidBundlesProof, - InvalidDomainBlockHash: InvalidDomainBlockHashProof, - InvalidExtrinsicsRoot: InvalidExtrinsicsRootProof, - InvalidStateTransition: InvalidStateTransitionProof, - InvalidTransfers: InvalidTransfersProof, - ValidBundle: ValidBundleProof, - } -}) - -export const ValidBundleProof: sts.Type = sts.struct(() => { - return { - bundleWithProof: OpaqueBundleWithProof, - } -}) - -export const OpaqueBundleWithProof: sts.Type = sts.struct(() => { - return { - bundle: Bundle, - bundleIndex: sts.number(), - bundleStorageProof: SuccessfulBundlesProof, - } -}) - -export const SuccessfulBundlesProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface SuccessfulBundlesProof { - trieNodes: Bytes[] -} - -export interface OpaqueBundleWithProof { - bundle: Bundle - bundleIndex: number - bundleStorageProof: SuccessfulBundlesProof -} - -export interface Bundle { - sealedHeader: SealedBundleHeader - extrinsics: OpaqueExtrinsic[] -} - -export type OpaqueExtrinsic = Bytes - -export interface SealedBundleHeader { - header: BundleHeader - signature: Bytes -} - -export interface BundleHeader { - proofOfElection: ProofOfElection - receipt: ExecutionReceipt - estimatedBundleWeight: Weight - bundleExtrinsicsRoot: H256 -} - -export interface Weight { - refTime: bigint - proofSize: bigint -} - -export interface ValidBundleProof { - bundleWithProof: OpaqueBundleWithProof -} - -export const InvalidTransfersProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export const StorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface StorageProof { - trieNodes: Bytes[] -} - -export interface InvalidTransfersProof { - storageProof: StorageProof -} - -export const InvalidStateTransitionProof: sts.Type = sts.struct(() => { - return { - executionProof: StorageProof, - executionPhase: ExecutionPhase, - } -}) - -export const ExecutionPhase: sts.Type = sts.closedEnum(() => { - return { - ApplyExtrinsic: sts.enumStruct({ - extrinsicProof: StorageProof, - mismatch: ApplyExtrinsicMismatch, - }), - FinalizeBlock: sts.enumStruct({ - mismatch: FinalizeBlockMismatch, - }), - InitializeBlock: sts.unit(), - } -}) - -export const FinalizeBlockMismatch: sts.Type = sts.closedEnum(() => { - return { - Longer: sts.number(), - StateRoot: sts.unit(), - } -}) - -export type FinalizeBlockMismatch = FinalizeBlockMismatch_Longer | FinalizeBlockMismatch_StateRoot - -export interface FinalizeBlockMismatch_Longer { - __kind: 'Longer' - value: number -} - -export interface FinalizeBlockMismatch_StateRoot { - __kind: 'StateRoot' -} - -export const ApplyExtrinsicMismatch: sts.Type = sts.closedEnum(() => { - return { - Shorter: sts.unit(), - StateRoot: sts.number(), - } -}) - -export type ApplyExtrinsicMismatch = ApplyExtrinsicMismatch_Shorter | ApplyExtrinsicMismatch_StateRoot - -export interface ApplyExtrinsicMismatch_Shorter { - __kind: 'Shorter' -} - -export interface ApplyExtrinsicMismatch_StateRoot { - __kind: 'StateRoot' - value: number -} - -export type ExecutionPhase = ExecutionPhase_ApplyExtrinsic | ExecutionPhase_FinalizeBlock | ExecutionPhase_InitializeBlock - -export interface ExecutionPhase_ApplyExtrinsic { - __kind: 'ApplyExtrinsic' - extrinsicProof: StorageProof - mismatch: ApplyExtrinsicMismatch -} - -export interface ExecutionPhase_FinalizeBlock { - __kind: 'FinalizeBlock' - mismatch: FinalizeBlockMismatch -} - -export interface ExecutionPhase_InitializeBlock { - __kind: 'InitializeBlock' -} - -export interface InvalidStateTransitionProof { - executionProof: StorageProof - executionPhase: ExecutionPhase -} - -export const InvalidExtrinsicsRootProof: sts.Type = sts.struct(() => { - return { - validBundleDigests: sts.array(() => ValidBundleDigest), - blockRandomnessProof: BlockRandomnessProof, - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof, - } -}) - -export const DomainInherentExtrinsicDataProof: sts.Type = sts.struct(() => { - return { - timestampProof: TimestampStorageProof, - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof, - dynamicCostOfStorageProof: DynamicCostOfStorageProof, - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof, - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof, - maybeDomainSudoCallProof: sts.option(() => DomainSudoCallStorageProof), - } -}) - -export const DomainSudoCallStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainSudoCallStorageProof { - trieNodes: Bytes[] -} - -export const DomainChainsAllowlistUpdateStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainChainsAllowlistUpdateStorageProof { - trieNodes: Bytes[] -} - -export const ConsensusTransactionByteFeeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface ConsensusTransactionByteFeeProof { - trieNodes: Bytes[] -} - -export const DynamicCostOfStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DynamicCostOfStorageProof { - trieNodes: Bytes[] -} - -export const MaybeDomainRuntimeUpgradedProof: sts.Type = sts.struct(() => { - return { - blockDigest: BlockDigestProof, - newDomainRuntimeCode: sts.option(() => DomainRuntimeCodeProof), - } -}) - -export const DomainRuntimeCodeProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface DomainRuntimeCodeProof { - trieNodes: Bytes[] -} - -export const BlockDigestProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockDigestProof { - trieNodes: Bytes[] -} - -export interface MaybeDomainRuntimeUpgradedProof { - blockDigest: BlockDigestProof - newDomainRuntimeCode?: (DomainRuntimeCodeProof | undefined) -} - -export const TimestampStorageProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface TimestampStorageProof { - trieNodes: Bytes[] -} - -export interface DomainInherentExtrinsicDataProof { - timestampProof: TimestampStorageProof - maybeDomainRuntimeUpgradeProof: MaybeDomainRuntimeUpgradedProof - dynamicCostOfStorageProof: DynamicCostOfStorageProof - consensusChainByteFeeProof: ConsensusTransactionByteFeeProof - domainChainAllowlistProof: DomainChainsAllowlistUpdateStorageProof - maybeDomainSudoCallProof?: (DomainSudoCallStorageProof | undefined) -} - -export const BlockRandomnessProof: sts.Type = sts.struct(() => { - return { - trieNodes: sts.array(() => sts.bytes()), - } -}) - -export interface BlockRandomnessProof { - trieNodes: Bytes[] -} - -export const ValidBundleDigest: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - bundleDigest: sts.array(() => sts.tuple(() => [sts.option(() => sts.bytes()), ExtrinsicDigest])), - } -}) - -export const ExtrinsicDigest: sts.Type = sts.closedEnum(() => { - return { - Data: sts.bytes(), - Hash: H256, - } -}) - -export type ExtrinsicDigest = ExtrinsicDigest_Data | ExtrinsicDigest_Hash - -export interface ExtrinsicDigest_Data { - __kind: 'Data' - value: Bytes -} - -export interface ExtrinsicDigest_Hash { - __kind: 'Hash' - value: H256 -} - -export interface ValidBundleDigest { - bundleIndex: number - bundleDigest: [(Bytes | undefined), ExtrinsicDigest][] -} - -export interface InvalidExtrinsicsRootProof { - validBundleDigests: ValidBundleDigest[] - blockRandomnessProof: BlockRandomnessProof - domainInherentExtrinsicDataProof: DomainInherentExtrinsicDataProof -} - -export const InvalidDomainBlockHashProof: sts.Type = sts.struct(() => { - return { - digestStorageProof: StorageProof, - } -}) - -export interface InvalidDomainBlockHashProof { - digestStorageProof: StorageProof -} - -export const InvalidBundlesProof: sts.Type = sts.struct(() => { - return { - bundleIndex: sts.number(), - invalidBundleType: InvalidBundleType, - isTrueInvalidFraudProof: sts.boolean(), - proofData: InvalidBundlesProofData, - } -}) - -export const InvalidBundlesProofData: sts.Type = sts.closedEnum(() => { - return { - Bundle: OpaqueBundleWithProof, - BundleAndExecution: sts.enumStruct({ - bundleWithProof: OpaqueBundleWithProof, - executionProof: StorageProof, - }), - Extrinsic: StorageProof, - InvalidXDMProofData: sts.enumStruct({ - extrinsicProof: StorageProof, - mmrRootProof: sts.option(() => MmrRootProof), - }), - } -}) - -export const MmrRootProof: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - mmrRootStorageProof: MmrRootStorageProof, - } -}) - -export const MmrRootStorageProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface MmrRootStorageProof { - storageProof: StorageProof -} - -export interface MmrRootProof { - mmrProof: ConsensusChainMmrLeafProof - mmrRootStorageProof: MmrRootStorageProof -} - -export interface ConsensusChainMmrLeafProof { - consensusBlockNumber: number - consensusBlockHash: H256 - opaqueMmrLeaf: EncodableOpaqueLeaf - proof: LeafProof -} - -export interface LeafProof { - leafIndices: bigint[] - leafCount: bigint - items: H256[] -} - -export type EncodableOpaqueLeaf = Bytes - -export type InvalidBundlesProofData = InvalidBundlesProofData_Bundle | InvalidBundlesProofData_BundleAndExecution | InvalidBundlesProofData_Extrinsic | InvalidBundlesProofData_InvalidXDMProofData - -export interface InvalidBundlesProofData_Bundle { - __kind: 'Bundle' - value: OpaqueBundleWithProof -} - -export interface InvalidBundlesProofData_BundleAndExecution { - __kind: 'BundleAndExecution' - bundleWithProof: OpaqueBundleWithProof - executionProof: StorageProof -} - -export interface InvalidBundlesProofData_Extrinsic { - __kind: 'Extrinsic' - value: StorageProof -} - -export interface InvalidBundlesProofData_InvalidXDMProofData { - __kind: 'InvalidXDMProofData' - extrinsicProof: StorageProof - mmrRootProof?: (MmrRootProof | undefined) -} - -export interface InvalidBundlesProof { - bundleIndex: number - invalidBundleType: InvalidBundleType - isTrueInvalidFraudProof: boolean - proofData: InvalidBundlesProofData -} - -export const InvalidBlockFeesProof: sts.Type = sts.struct(() => { - return { - storageProof: StorageProof, - } -}) - -export interface InvalidBlockFeesProof { - storageProof: StorageProof -} - -export type FraudProofVariant = FraudProofVariant_InvalidBlockFees | FraudProofVariant_InvalidBundles | FraudProofVariant_InvalidDomainBlockHash | FraudProofVariant_InvalidExtrinsicsRoot | FraudProofVariant_InvalidStateTransition | FraudProofVariant_InvalidTransfers | FraudProofVariant_ValidBundle - -export interface FraudProofVariant_InvalidBlockFees { - __kind: 'InvalidBlockFees' - value: InvalidBlockFeesProof -} - -export interface FraudProofVariant_InvalidBundles { - __kind: 'InvalidBundles' - value: InvalidBundlesProof -} - -export interface FraudProofVariant_InvalidDomainBlockHash { - __kind: 'InvalidDomainBlockHash' - value: InvalidDomainBlockHashProof -} - -export interface FraudProofVariant_InvalidExtrinsicsRoot { - __kind: 'InvalidExtrinsicsRoot' - value: InvalidExtrinsicsRootProof -} - -export interface FraudProofVariant_InvalidStateTransition { - __kind: 'InvalidStateTransition' - value: InvalidStateTransitionProof -} - -export interface FraudProofVariant_InvalidTransfers { - __kind: 'InvalidTransfers' - value: InvalidTransfersProof -} - -export interface FraudProofVariant_ValidBundle { - __kind: 'ValidBundle' - value: ValidBundleProof -} - -export const DomainRuntimeCodeAt: sts.Type = sts.struct(() => { - return { - mmrProof: ConsensusChainMmrLeafProof, - domainRuntimeCodeProof: DomainRuntimeCodeProof, - } -}) - -export interface DomainRuntimeCodeAt { - mmrProof: ConsensusChainMmrLeafProof - domainRuntimeCodeProof: DomainRuntimeCodeProof -} - -export const ConsensusChainMmrLeafProof: sts.Type = sts.struct(() => { - return { - consensusBlockNumber: sts.number(), - consensusBlockHash: H256, - opaqueMmrLeaf: EncodableOpaqueLeaf, - proof: LeafProof, - } -}) - -export const LeafProof: sts.Type = sts.struct(() => { - return { - leafIndices: sts.array(() => sts.bigint()), - leafCount: sts.bigint(), - items: sts.array(() => H256), - } -}) - -export const EncodableOpaqueLeaf = sts.bytes() - -export interface FraudProof { - domainId: DomainId - badReceiptHash: H256 - maybeMmrProof?: (ConsensusChainMmrLeafProof | undefined) - maybeDomainRuntimeCodeProof?: (DomainRuntimeCodeAt | undefined) - proof: FraudProofVariant -} - -export const Bundle: sts.Type = sts.struct(() => { - return { - sealedHeader: SealedBundleHeader, - extrinsics: sts.array(() => OpaqueExtrinsic), - } -}) - -export const OpaqueExtrinsic = sts.bytes() - -export const SealedBundleHeader: sts.Type = sts.struct(() => { - return { - header: BundleHeader, - signature: sts.bytes(), - } -}) - -export const BundleHeader: sts.Type = sts.struct(() => { - return { - proofOfElection: ProofOfElection, - receipt: ExecutionReceipt, - estimatedBundleWeight: Weight, - bundleExtrinsicsRoot: H256, - } -}) - -export const Weight: sts.Type = sts.struct(() => { - return { - refTime: sts.bigint(), - proofSize: sts.bigint(), - } -}) - -export const DomainId = sts.number() - -export const AccountId32 = sts.bytes() From fc2968ffcf3fab6768a7d52ebad9bf559902e652 Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 27 Aug 2024 07:54:12 -0400 Subject: [PATCH 40/42] re-add-root-package --- package.json | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 000000000..47201bce7 --- /dev/null +++ b/package.json @@ -0,0 +1,51 @@ +{ + "name": "astral", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/autonomys/astral" + }, + "author": { + "name": "Autonomys", + "url": "https://www.autonomys.xyz" + }, + "bugs": { + "url": "https://github.com/autonomys/astral/issues" + }, + "workspaces": { + "packages": [ + "indexers/db", + "indexers/consensus-squid", + "indexers/leaderboard-squid", + "indexers/staking-squid", + "explorer" + ] + }, + "scripts": { + "up": "docker compose up", + "down": "docker compose down", + "db": "lerna run start --scope=db", + "db:metadata": "lerna run metadata --scope=db", + "explorer:dev": "lerna run dev --scope=explorer", + "explorer:codegen": "lerna run codegen --scope=explorer", + "explorer:build": "lerna run build --scope=explorer", + "explorer:test": "lerna run test --scope=explorer", + "explorer:lint": "lerna run lint --scope=explorer", + "explorer:lint:fix": "lerna run lint:fix --scope=explorer", + "explorer:format": "lerna run format --scope=explorer", + "explorer": "lerna run all --scope=explorer", + "indexers:typegen": "lerna run typegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:codegen": "lerna run codegen --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:migration": "lerna run migration --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:build": "lerna run build --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:process": "lerna run process --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers:format": "lerna run format --stream --scope=consensus-squid --scope=leaderboard-squid --scope=staking-squid", + "indexers": "yarn indexers:typegen && yarn indexers:codegen && yarn indexers:migration && yarn indexers:build && yarn indexers:process" + }, + "devDependencies": { + "lerna": "^8.1.8" + } +} From 41fdc415c33ded1579be31c8ea0aba675a54659e Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:00:05 -0400 Subject: [PATCH 41/42] add account squid to workspace list --- .vscode/astral.code-workspace | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/.vscode/astral.code-workspace b/.vscode/astral.code-workspace index 1317c0f7d..cba188d11 100644 --- a/.vscode/astral.code-workspace +++ b/.vscode/astral.code-workspace @@ -2,38 +2,42 @@ "folders": [ { "name": "root", - "path": ".." + "path": "..", }, { "name": "explorer", - "path": "../explorer" + "path": "../explorer", }, { "name": "health-check", - "path": "../health-check" + "path": "../health-check", }, { "name": "indexers", - "path": "../indexers" + "path": "../indexers", }, { "name": "indexer - Consensus Squid", - "path": "../indexers/consensus-squid" + "path": "../indexers/consensus-squid", + }, + { + "name": "indexer - Accounts Squid", + "path": "../indexers/accounts-squid", }, { "name": "indexer - Leaderboard Squid", - "path": "../indexers/leaderboard-squid" + "path": "../indexers/leaderboard-squid", }, { "name": "indexer - Staking Squid", - "path": "../indexers/staking-squid" - } + "path": "../indexers/staking-squid", + }, ], "settings": { "editor.codeActionsOnSave": { "source.sortImports": "explicit", "source.fixAll.eslint": "explicit", - "source.fixAll.tslint": "explicit" + "source.fixAll.tslint": "explicit", }, "editor.defaultFormatter": "esbenp.prettier-vscode", "javascript.updateImportsOnFileMove.enabled": "always", @@ -55,7 +59,7 @@ "subscan", "subspace", "subsquid", - "typegen" - ] - } + "typegen", + ], + }, } From 5a57c3e04b368ac6d9567b3873515918c5a46c8d Mon Sep 17 00:00:00 2001 From: Marc-Aurele Besner <82244926+marc-aurele-besner@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:37:17 -0400 Subject: [PATCH 42/42] add more details to transfer (event and extrinsic Id's) --- indexers/accounts-squid/package-lock.json | 9 +-- indexers/accounts-squid/schema.graphql | 5 +- indexers/accounts-squid/squid.yaml | 2 +- indexers/accounts-squid/src/main.ts | 56 ++++++++++--------- .../accounts-squid/src/storage/transfer.ts | 3 + 5 files changed, 44 insertions(+), 31 deletions(-) diff --git a/indexers/accounts-squid/package-lock.json b/indexers/accounts-squid/package-lock.json index cdddb7680..ac684a2ec 100644 --- a/indexers/accounts-squid/package-lock.json +++ b/indexers/accounts-squid/package-lock.json @@ -1,10 +1,12 @@ { - "name": "staking-squid", + "name": "accounts-squid", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "staking-squid", + "name": "accounts-squid", + "version": "1.0.0", "dependencies": { "@autonomys/auto-consensus": "^0.2.0", "@autonomys/auto-utils": "^0.2.0", @@ -19,6 +21,7 @@ }, "devDependencies": { "@subsquid/substrate-metadata-explorer": "^3.1.2", + "@subsquid/substrate-runtime": "^2.0.0", "@subsquid/substrate-typegen": "^8.1.0", "@subsquid/typeorm-codegen": "^2.0.0", "@types/node": "^20.12.7", @@ -1170,7 +1173,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@subsquid/scale-type-system/-/scale-type-system-1.0.2.tgz", "integrity": "sha512-bZSUGO/Hfnf/+luZ8lWEsGqr9iIiQeaifmXEiOGBpr5Ace6H+pPY3lFmDTPWigoqt7VxrhRO0jvk5RLAyeBJvg==", - "peer": true, "dependencies": { "@subsquid/util-internal": "^3.0.0" }, @@ -1277,7 +1279,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@subsquid/substrate-runtime/-/substrate-runtime-2.0.0.tgz", "integrity": "sha512-sjw0BmcUPnXasYqv9zuI8wb21Y2hyIPpz24ut9eBTVXUvdBobASw/6iFlQsFoxqzz39xxQfZIZsWXBet5AViAw==", - "peer": true, "dependencies": { "@subsquid/scale-codec": "^4.0.1", "@subsquid/scale-type-system": "^1.0.2", diff --git a/indexers/accounts-squid/schema.graphql b/indexers/accounts-squid/schema.graphql index b55624144..699c424c5 100644 --- a/indexers/accounts-squid/schema.graphql +++ b/indexers/accounts-squid/schema.graphql @@ -10,10 +10,13 @@ type Account @entity { type Transfer @entity { id: ID! @index + extrinsicId: String! @index + eventId: String! @index from: String! @index to: String! @index value: BigInt! fee: BigInt! + success: Boolean! timestamp: BigInt! @index date: DateTime! @index createdAt: Int! @index @@ -22,4 +25,4 @@ type Transfer @entity { type SlackMessage @entity { id: ID! @index messageId: String! @index -} \ No newline at end of file +} diff --git a/indexers/accounts-squid/squid.yaml b/indexers/accounts-squid/squid.yaml index 445fdd9f3..ddf2b45ce 100644 --- a/indexers/accounts-squid/squid.yaml +++ b/indexers/accounts-squid/squid.yaml @@ -1,6 +1,6 @@ manifestVersion: subsquid.io/v0.1 name: accounts-squid -version: 4 +version: 5 description: Autonomys - Astral - Accounts Indexer build: deploy: diff --git a/indexers/accounts-squid/src/main.ts b/indexers/accounts-squid/src/main.ts index 99ac66672..1a65a5a41 100644 --- a/indexers/accounts-squid/src/main.ts +++ b/indexers/accounts-squid/src/main.ts @@ -6,11 +6,7 @@ import { processor } from './processor' import { getOrCreateAccount, getOrCreateTransfer } from './storage' import { events } from './types' import { account } from './types/system/storage' -import { - getBlockNumber, - hexToAccount, - logBlock -} from './utils' +import { getBlockNumber, hexToAccount, logBlock } from './utils' import { Cache, LastSlackMsg, load, save } from './utils/cache' import { sendSlackStatsMessage } from './utils/slack' @@ -36,12 +32,19 @@ processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { const logMsg = logBlock(ctx.blocks) const lastSlackMsgKey: LastSlackMsg = 'lastSlackMsg' const lastSlackMsg = cache.slackMessages.get(lastSlackMsgKey) - const slackMsg = await sendSlackStatsMessage(logMsg, lastSlackMsg ? lastSlackMsg.messageId : undefined) - if (slackMsg) cache.slackMessages.set(lastSlackMsgKey, new SlackMessage({ - id: lastSlackMsgKey, - messageId: slackMsg, - })) - cache.isModified = true + const slackMsg = await sendSlackStatsMessage( + logMsg, + lastSlackMsg ? lastSlackMsg.messageId : undefined, + ) + if (slackMsg) + cache.slackMessages.set( + lastSlackMsgKey, + new SlackMessage({ + id: lastSlackMsgKey, + messageId: slackMsg, + }), + ) + cache.isModified = true for (let block of ctx.blocks) { for (const extrinsic of block.extrinsics) { @@ -58,31 +61,34 @@ processor.run(new TypeormDatabase({ supportHotBlocks: true }), async (ctx) => { if (fromAct) { const fromAccount = getOrCreateAccount(cache, block, from) - fromAccount.nonce = BigInt(fromAct.nonce) - fromAccount.free = fromAct.data.free - fromAccount.reserved = fromAct.data.reserved - fromAccount.total = fromAct.data.free + fromAct.data.reserved - fromAccount.updatedAt = blockNumber - - cache.accounts.set(fromAccount.id, fromAccount) + fromAccount.nonce = BigInt(fromAct.nonce) + fromAccount.free = fromAct.data.free + fromAccount.reserved = fromAct.data.reserved + fromAccount.total = fromAct.data.free + fromAct.data.reserved + fromAccount.updatedAt = blockNumber + + cache.accounts.set(fromAccount.id, fromAccount) } if (toAct) { const toAccount = getOrCreateAccount(cache, block, to) - toAccount.nonce = BigInt(toAct.nonce) - toAccount.free = toAct.data.free - toAccount.reserved = toAct.data.reserved - toAccount.total = toAct.data.free + toAct.data.reserved - toAccount.updatedAt = blockNumber - - cache.accounts.set(toAccount.id, toAccount) + toAccount.nonce = BigInt(toAct.nonce) + toAccount.free = toAct.data.free + toAccount.reserved = toAct.data.reserved + toAccount.total = toAct.data.free + toAct.data.reserved + toAccount.updatedAt = blockNumber + + cache.accounts.set(toAccount.id, toAccount) } const transfer = getOrCreateTransfer(cache, block, event.id, { + extrinsicId: extrinsic.id, + eventId: event.id, from, to, value: amount, fee: BigInt(extrinsic.fee ?? 0), + success: extrinsic.success, timestamp: BigInt(block.header.timestamp ?? 0), }) cache.transfers.set(transfer.id, transfer) diff --git a/indexers/accounts-squid/src/storage/transfer.ts b/indexers/accounts-squid/src/storage/transfer.ts index 9371ad02f..8b93a5c81 100644 --- a/indexers/accounts-squid/src/storage/transfer.ts +++ b/indexers/accounts-squid/src/storage/transfer.ts @@ -11,10 +11,13 @@ export const createTransfer = ( const blockNumber = getBlockNumber(block) return new Transfer({ id: id, + extrinsicId: props.extrinsicId ?? '', + eventId: props.eventId ?? '', from: props.from ?? '', to: props.to ?? '', value: props.value ?? BigInt(0), fee: props.fee ?? BigInt(0), + success: props.success ?? false, timestamp: props.timestamp ?? BigInt(0), date: props.date ?? getTimestamp(block), createdAt: blockNumber,